Hallo Comunity,
nach ein paar Tagen, die ich mit AutoIt verbracht habe (und meinen ersten Programmen und Problemen, die ich alle selbsständig lösen konnte), habe ich nun ein Problem, bei dem mir weder die Online-Hilfe, noch der Debugger weiterhelfen konnte.
Mein Programm möchte ich möglichst klein halten und habe mich daher gegen eine GUI entschieden. Die entsprechenden Konfigurationen möchte ich über das Tray-Symbol ändern und zwar während der Laufzeit.
Leider funktioniert das nur manchmal, wobei es egal ist, ob man Das Programm direkt ausführt oder zuerst kompiliert.
Wenn man das Programm startet, funktioniert es entweder immer oder es stürzt beim Auswählen des Menüpunkts ab. Den Sourcecode hab ich kopiert und auf den fehlererzeugenden Code reduziert:
AutoItSetOption("TrayAutoPause", 0)
AutoItSetOption("TrayOnEventMode", 1)
InitTray()
While True
ConsoleWrite("Ich warte ..." & @CRLF)
Sleep(3000)
WEnd
Func InitTray()
Global $aTrayArray[2][7] = [["Text 1", "Text 2", "Text 3", "Text 4", "Text 5", "Text 6", "Text 7"], []]
$aTrayArray[1][0] = TrayCreateItem($aTrayArray[0][0], -1, -1, 1)
$aTrayArray[1][1] = TrayCreateItem($aTrayArray[0][1], -1, -1, 1)
$aTrayArray[1][2] = TrayCreateItem($aTrayArray[0][2], -1, -1, 1)
Local $iTraySettings = TrayCreateMenu("Untermenü")
$aTrayArray[1][3] = TrayCreateItem($aTrayArray[0][3], $iTraySettings)
$aTrayArray[1][4] = TrayCreateItem($aTrayArray[0][4], $iTraySettings)
$aTrayArray[1][5] = TrayCreateItem($aTrayArray[0][5], $iTraySettings)
$aTrayArray[1][6] = TrayCreateItem($aTrayArray[0][6])
For $i = 0 To 6
TrayItemSetOnEvent($aTrayArray[1][$i], "CallTray")
Next
EndFunc
Func CallTray()
MsgBox(0, "DEBUG", "Funktioniert")
EndFunc
Alles anzeigen
Es scheint so, als ob TrayItemSetOnEvent() die entsprechende Funktion nicht immer finden kann.
Ich hoffe, Ihr könnt mir sagen, was ich falsch mache. Vielen Dank schon mal im Vorraus.