- Offizieller Beitrag
Nimm FileExist und FileOpen auch mit dem Makro @Scriptdir . Makros siehe meine letzte Post .
MfG Raupi
Edit dein Script sieht so bei mir aus und es funzt so wie es soll .
Spoiler anzeigen
opt("traymenumode",1)
opt("trayoneventmode",1)
$beenden=traycreateitem("Beenden")
[/autoit] [autoit][/autoit] [autoit]if fileexists(@ScriptDir&"\running") then
msgbox(0,"Fehler","Das Programm wird bereits ausgeführt. Mehrere Instanzen sind nicht möglich.")
exit
else
trayitemsetonevent($beenden,"beenden")
$Test = fileopen(@ScriptDir&"\running",1)
fileClose($Test)
;run("server\apache\bin\httpd.exe","server\apache\bin")
;run("server\mysql\bin\mysqld-nt.exe","server\mysql\bin")
endif
while 1
sleep(1)
wend
func beenden() ;processclose("httpd.exe")
;processclose("mysqld-nt.exe")
FileDelete(@ScriptDir&"\running.*")
exit
endfunc
Besser ist es aber wenn du die Variablen Declarierst :
Spoiler anzeigen
Opt("traymenumode", 1)
Opt("trayoneventmode", 1)
Opt("MustDeclarevars", 1)
Global $beenden = TrayCreateItem("Beenden")
If FileExists(@ScriptDir & "\running") Then
MsgBox(0, "Fehler", "Das Programm wird bereits ausgeführt. Mehrere Instanzen sind nicht möglich.")
Exit
Else
TrayItemSetOnEvent($beenden, "beenden")
Global $Test = FileOpen(@ScriptDir & "\running", 1)
FileClose($Test)
;run("server\apache\bin\httpd.exe","server\apache\bin")
;run("server\mysql\bin\mysqld-nt.exe","server\mysql\bin")
EndIf
While 1
Sleep(1)
WEnd
Func beenden() ;processclose("httpd.exe")
;processclose("mysqld-nt.exe")
FileDelete(@ScriptDir & "\running.*")
Exit
EndFunc ;==>beenden
MfG Raupi