hallo leute, ich habe ein tool, welches im hintergrund läuft und das modernmenu benutzt (Wer es nicht kennt: es ist ein besseres traymenü als das herkömmliche).
Das Problem ist, dass ich das Tool öfters automatisch neu starten lasse (muss auch so bleiben!), was zur folge hat, dass logischer weise das traymenu wieder neu erstellt wird.
Das modernmenu muss GUISetState() aufrufen, sonst sind die menüpunkte nicht anklickbar. Leider wirft mich genau dieses Aufrufen der Funktion GUISetState() immer wieder auf den
desktop, was in spielen natürlich oft total doof ist. Habt Ihr eine Idee wie ich GUISetState() so aufrufen kann, dass ich dadruch nicht auf dem desktop lande!?
;**********************************************************************
; _TrayIconCreate([ToolTip [, IconFile [, IconID]]])
;**********************************************************************
Func _TrayIconCreate($sToolTip = "", $sIconFile = @AutoItExe, $nIconID = 0, $sCallback = "", $nMsg = 0, $hIcon = 0)
If $sToolTip = "" Then $sToolTip = $sDefaultTT
$nIconID = _GetIconID($nIconID, $sIconFile)
If $sIconFile = "" Then
If $hIcon = 0 Then
If $nIconID = 0 Then
$sIconFile = @AutoItExe
Else
$hIcon = LoadIcon(0, $nIconID)
EndIf
EndIf
EndIf
If $sIconFile <> "" Then
Local $stIcon = DllStructCreate("hwnd")
If ExtractIconExW($sIconFile, $nIconID, 0, DllStructGetPtr($stIcon), 1) > 0 Then
$hIcon = DllStructGetData($stIcon, 1)
Else
$hIcon = LoadIcon(0, 32516)
EndIf
EndIf
If $TRAYMSGWND = 0 Then
$TRAYMSGWND = GUICreate("", 1, 1, 9999, 9999, -1, 0x00000080)
GUISetState() ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< hier das Problem!
ShowWindow($TRAYMSGWND, @SW_HIDE)
EndIf
Local $nNID = _GetNewTrayIndex()
If $nNID = 0 Then
DestroyIcon($hIcon)
Return 0
EndIf
$TRAYNOTIFYIDS[$nNID][0] = $nNID
$TRAYNOTIFYIDS[$nNID][1] = $hIcon
$TRAYNOTIFYIDS[$nNID][2] = 0
$TRAYNOTIFYIDS[$nNID][3] = 9
$TRAYNOTIFYIDS[$nNID][4] = $sToolTip
$TRAYNOTIFYIDS[$nNID][5] = $sCallback
$TRAYNOTIFYIDS[$nNID][6] = $nMsg
$TRAYNOTIFYIDS[$nNID][7] = FALSE
$TRAYNOTIFYIDS[$nNID][8] = FALSE
$TRAYLASTID = $nNID
Return $nNID
EndFunc