Code
$param = StringTrimLeft($CmdLine[1], 1)
$run_1 = IniRead(@ScriptDir & "\fse4wm.ini", $param, "exe", "kA")
$run_2 = IniRead(@ScriptDir & "\fse4wm.ini", $param, "wd", "kA")
If $run_1 = "kA" Or $run_2 = "kA" Then
MsgBox(48, "FSE4WM - Fehler", "Das Spiel '" & $param & "' ist fehlerhaft konfiguriert!" & @CRLF & "Bitte prüfen Sie die Konfiguration!")
Exit
Else
$pid = Run($run_1, $run_2)
$name = _ProcessGetName($pid)
MsgBox(0, "", $name)
$windows = WinList()
_ArrayDisplay($windows)
For $i = 1 To $windows[0][0]
$pid_of_win = WinGetProcess($windows[$i][0])
MsgBox(0, $pid, $pid_of_win & " (" & $windows[$i][0] & ")")
If $pid = $pid_of_win Then
MsgBox(0, "Fund", $windows[$i][0])
EndIf
Next
MsgBox(0, "", "111")
;~ WinWaitActive($name)
Exit
EndIf
Wie der Titel schon sagt, liefert mir der Run()-Befehl eine PID. Auch der WinGetProcess()-Befehl liefert mir eine PID.
Allerdings handelt es sich dabei um verschiedene.
Beispiel: Ich starte ein Programm und erhalte bei Run() die PID 1338. Beim Fenster des gestarteten Prozesses liefert mir die unterstrichene Box dann irgendwas anderes, zum Beispiel 5768.
Ich würde gerne mit dem Fenster des gestarteten Prozesses interagieren. Allerdings ist das recht schwierig, wenn ich nicht herausfinden kann, welches Fenster zum Prozess gehört.
Hat jemand einen Rat oder Abhilfe?