ich entwickle derzeit ein Script, das mir im Tray alle laufenden Programme durchläuft und auf Nachfrage beendet. Dazu nutze ich die TrayIcon library (Download hier), die einige Funktionen in diesem Zusammenhang zur Verfügung stellt.
Meine Frage stellt sich aber nicht zu dieser Bibliothek, sondern zu dem grundsätzlichen Aufruf einer Funktion und den zu übergebenden Parametern. Meine Schleife ist folgendermaßen aufgebaut:
Code: Select all
#Include TrayIcon.ahk
DetectHiddenWindows, On
SetTitleMatchMode, 2
TrayPrg := TrayIcon_GetInfo()
Loop % TrayPrg.MaxIndex()
{
; Programm 01
If (TrayPrg[A_Index].Process = "Programm01.exe")
{
hWnd := TrayPrg[A_Index].hWnd
idx := TrayPrg[A_Index].idx
MsgBox, 1,, % TrayPrg[A_Index].Process . "`ngefunden - beenden?"
IfMsgBox Ok
{
WinClose, ahk_id %hWnd%
TrayIcon_Delete(idx, 0)
}
}
; Programm 02
If (TrayPrg[A_Index].Process = "Programm02.exe")
; statt diesem Konstrukt ...:
; {
; hWnd := TrayPrg[A_Index].hWnd
; idx := TrayPrg[A_Index].idx
; MsgBox, 1,, % TrayPrg[A_Index].Process . "`ngefunden - beenden?"
; IfMsgBox Ok
; {
; WinClose, ahk_id %hWnd%
; TrayIcon_Delete(idx, 0)
; }
; }
; ... soll eine Funktion aufgerufen werden,
; aber mit welchem Parameter?
MeClose(???)
}
Return
; Wie sieht der Parameter der Funktion aus?:
MeClose(???)
{
hWnd := ???
idx := ???
MsgBox, 1,, % ??? . "`ngefunden - beenden?"
IfMsgBox Ok
{
WinClose, ahk_id %hWnd%
; ??? -> TrayIcon_Delete(idx, 0)
}
}
Danke schon mal im Voraus für euer Lesen.
Lucky Joe