IUIAutomation :: RemoveAllEventHandlers hängt

8

Ich entwickle eine App in C ++, die UIAutomation verwendet, um Benachrichtigungen über wichtige Ereignisse im Zusammenhang mit Benutzerinteraktionen zu erhalten. Ich habe einen Event-Handler ausprobiert, indem ich AddAutomationEventHandler aufgerufen habe, um nach Fenster-geöffneten Ereignissen zu hören, aber ich habe Probleme, die Benachrichtigung zu stoppen und vor dem Beenden zu bereinigen. Wenn der Benutzer bestimmte Anwendungen wie Firefox gestartet hat, wird der Aufruf von RemoveAutomationEventHandlerhangs aufgerufen. (Der Aufruf von RemoveAllEventHandlers hängt in diesem Fall ebenfalls.) Beachten Sie, dass alle Aufrufe zum Hinzufügen oder Entfernen von Ereignishandlern im Kontext desselben Nicht-UI-Threads ausgeführt werden.

Hinweis: Ich sehe dieses Verhalten unter Windows 7 und Windows 8.

Irgendwelche Ideen, warum das passiert oder wie man es repariert? Was unterscheidet die Struktur von anderen Ereignissen?

    
Wayne 26.11.2012, 22:12
quelle

1 Antwort

3

Fenster öffnen / schließen Ereignisse werden über die Kernel-WinEvent-Handler implementiert; Die Strukturänderungsereignisse betreffen die Client-App. Spult Ihr Nicht-Ui-Thread Nachrichten? UI Automation muss Nachrichten pumpen, damit die prozessübergreifende Kommunikation funktioniert.

    
Eric Brown 06.08.2013 19:41
quelle

Tags und Links