[PROBLEM] Fenstername über Prozess auslesen

02/09/2014 21:25 .SenSatioNx3'#1
Ich hab ein Probloem mit dem Fenstername über den Prozess anzeigen zu lassen

unzwar will ich mich bisschen so rum probieren durch autoit und zurzeit hänge ich an diesen code...

Leider kann ich es nur über den Fenstertitel den Prozess anzeigen zu lassen aber ich will es andersrum wie soll das gehen?

Code:
#Include <Process.au3>

$1 = "Google - Mozilla Firefox"

	Local $pid = WinGetProcess($1, "")
        Local $name = _ProcessGetName($pid)
        MsgBox(0, $pid, $name)
Bitte um eure hilfe
02/09/2014 23:02 lolkop#2
Quote:
Originally Posted by .SenSatioNx3' View Post
Ich hab ein Probloem mit dem Fenstername über den Prozess anzeigen zu lassen

unzwar will ich mich bisschen so rum probieren durch autoit und zurzeit hänge ich an diesen code...

Leider kann ich es nur über den Fenstertitel den Prozess anzeigen zu lassen aber ich will es andersrum wie soll das gehen?

Code:
#Include <Process.au3>

$1 = "Google - Mozilla Firefox"

	Local $pid = WinGetProcess($1, "")
        Local $name = _ProcessGetName($pid)
        MsgBox(0, $pid, $name)
Bitte um eure hilfe
es existiert aus gutem grund keine funktion hierfür, da jeder prozess beliebig viele fenster (sichtbar oder eben auch nicht) haben kann...

hier ein beispiel wie man es lösen könnte:
Code:
Opt("WinTitleMatchMode", -2)
$windowArray = getProcessWindows(WinGetProcess("scite"))
For $i=1 To $windowArray[0][0]
	ConsoleWrite("WindowTitle: "&$windowArray[$i][0]&" - WindowHandle: "&$windowArray[$i][1]&@CRLF)
Next

Func getProcessWindows($pid)
	Local $return[1][2]=[[0]], $list = WinList()
	For $i=1 To $list[0][0]
		If $pid = WinGetProcess($list[$i][1]) Then
			$return[0][0]+=1
			ReDim $return[$return[0][0]+1][2]
			$return[$return[0][0]][0]=$list[$i][0]
			$return[$return[0][0]][1]=$list[$i][1]
		EndIf
	Next
	Return $return
EndFunc