Entwickler-Ecke

Windows API - "Keine Rückmeldung" bei fremden Programm herausfinden


Regan - Fr 20.02.09 18:10
Titel: "Keine Rückmeldung" bei fremden Programm herausfinden
Hallo,

der Titel beschreibt das ganze eigentlich schon ganz gut. Zu dem Programm habe ich nur den Exename, der auch in der Prozessliste erscheint. Kennt jemand eine Lösung?

MfG
Regan


jaenicke - Fr 20.02.09 18:53

Du könntest eine Botschaft mit SendMessageCallback [http://msdn.microsoft.com/en-us/library/ms644951.aspx] oder SendMessageTimeout [http://msdn.microsoft.com/en-us/library/ms644952.aspx] senden. Wird diese verarbeitet, gilt die Anwendung als reagierend, und genau diese Abarbeitung kannst du so feststellen.

Wenn du nur den Namen der Exe der Anwendung hast, dann musst du erst ein Handle der laufenden Anwendung finden, an das du die Botschaft schicken kannst.
Das Problem ist nur: Was, wenn das Programm mehrfach gestartet ist? :gruebel:
Dann müsstest du alle Instanzen beachten.


Regan - Sa 21.02.09 12:26

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Du könntest eine Botschaft mit SendMessageCallback [http://msdn.microsoft.com/en-us/library/ms644951.aspx] oder SendMessageTimeout [http://msdn.microsoft.com/en-us/library/ms644952.aspx] senden. Wird diese verarbeitet, gilt die Anwendung als reagierend, und genau diese Abarbeitung kannst du so feststellen.

OK. Danke.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du nur den Namen der Exe der Anwendung hast, dann musst du erst ein Handle der laufenden Anwendung finden, an das du die Botschaft schicken kannst.
Das Problem ist nur: Was, wenn das Programm mehrfach gestartet ist? :gruebel:
Dann müsstest du alle Instanzen beachten.

Nö :mrgreen: , es ist nicht mehrfach gestartet :wink: .


toms - Sa 21.02.09 12:28

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Du könntest eine Botschaft mit SendMessageCallback [http://msdn.microsoft.com/en-us/library/ms644951.aspx] oder SendMessageTimeout [http://msdn.microsoft.com/en-us/library/ms644952.aspx] senden. Wird diese verarbeitet, gilt die Anwendung als reagierend, und genau diese Abarbeitung kannst du so feststellen.


Oder IsHungAppWindow [http://msdn.microsoft.com/en-us/library/ms633526.aspx] verwenden.