Autor Beitrag
michasbaer
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 09.05.07 11:52 
Hallo,
mit einem kleinen Programm 'fernsteuere' ich Menüklicks in fremden Programmen.
Wenn diese Programme von meinem Programm aus mit CreateProcess gestartet werden,
bekomme ich in der Process_Information .hprocess geliefert und alles ist in Ordnung.
Wenn aber das fernzusteuernde Programm schon läuft, weiß ich nicht wie man den hprocess
ermittelt. Ich würde Ihn brauchen um durch waitforinputidle(hprocess,dwMilliseconds)
ein 'Überholen' des fremden Programmes zu verhindern.

Gib's da was ?, schon mal Danke für jede Hilfe
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 09.05.07 14:25 
Mit OpenProcess bekommst du ein Handle auf den Prozess.
michasbaer Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 09.05.07 17:11 
Hallo Michael,
schönen Dank für OpenProcess, aber ich glaube wenn man sich durch die
ganzen DesiredAccess-Parameter durchgekämpft hat, und dann den SYNCHRONIZE
auswählt (hab's aber auch mit anderen probiert) dann liefert OpenProcess nicht
hprocess, sondern ein handle auf ein Processobjekt, das man dann für Wait's ob
Single-, Multi- oder Alert-Objekte hernehmen kann.
Der WaitForInputIdle wartet erstens nicht, wenn man ihn mit Processobjekten
bedient, und blöderweise ist das der einzige Wait der mir bekannt ist, der
tatsächlich wartet, bis alle Rechenvorgänge, IO-Vorgänge abgeschlossen sind
und die Anwendung bereit ist, neue Tastatur- oder Mausaktivitäten entgegen-
zunehmen.
Mir ist aufgefallen, daß sich der hprocess für ein Programm nie ändert, wenn
man ihn mit CreateProcess anschmeisst - was ist hprocess - ???

Wenn Dir als Alternative zum WaitForInputIdle irgendetwas einfällt, nehm ich das
und wir können den Thread schließen.

Nochmal Danke

Gruß
Rainer