Ein paar kurze Fragen

09/17/2010 22:10 Nulpe123#1
Hallo zusammen,

ich hätte hier ein paar Fragen bzgl. AutoIt:

1. Wie kann ich eine Liste von Prozesshandles von allen offenen Prozessen mit dem gleichen Namen in einem Array speichern? ( Bsp. 3x der Prozess "abc.exe". Nun will ich von allen Prozessen mit dem Namen "abc.exe" das Handle)

2. Wie bekomme ich durch das Prozesshandle den Namen des Hauptfensters von diesem Prozess, das ich für die ControlSend-Methode benötige?


Würde mich über eure Lösungen freuen :)
09/17/2010 23:07 lolkop#2
Quote:
Originally Posted by Nulpe123 View Post
Hallo zusammen,

ich hätte hier ein paar Fragen bzgl. AutoIt:

1. Wie kann ich eine Liste von Prozesshandles von allen offenen Prozessen mit dem gleichen Namen in einem Array speichern? ( Bsp. 3x der Prozess "abc.exe". Nun will ich von allen Prozessen mit dem Namen "abc.exe" das Handle)

2. Wie bekomme ich durch das Prozesshandle den Namen des Hauptfensters von diesem Prozess, das ich für die ControlSend-Methode benötige?


Würde mich über eure Lösungen freuen :)
process list listet dir alle prozesse mit dem name auf (gehe mal davon aus das du mir handle die process id meinst und die liefert process list dir).

den name "vom hauptfenster" kann man so nicht so leicht bestimmen, da prozesse ja beliebig viele fenster haben können.

kannst dir aber zb so eine funktion schreiben:
Code:
Func FensterVomProcess($pid)
	$list = WinList()
	For $i=1 To $list[0][0]
		If WinGetProcess($list[$i][1]) = $pid Then Return $list[$i][1]
	Next
EndFunc
die dir dann vom ersten fenster vom process das gefunden wurde das handle zurück gibt, was du dann auch in controlsend als "titel" nutzen kannst
09/18/2010 11:25 | Moep |#3
Vielleicht ist [Only registered and activated users can see links. Click Here To Register...] auch was für dich. Ist im grunde nen Nachgebautes ControlSend.
Bei der KeySend Func kannst du direkt die gefundenen PIDs übergeben, um einen Key an das Fenster zu schicken.
09/18/2010 12:54 Nulpe123#4
Danke für eure Antworten. Ich werde das gleich mal ausprobieren!

Edit: Das mit FensterVomProcess, ProcessList und ControlSend klappt wunderbar! KeySend war mir jetzt zu aufwendig, da man wohl noch irgendwelche include-Dateien kopieren muss.