2 Stimmen

Erkennung des Dialogergebnisses aus einem Dialogfenster, das nicht in Bearbeitung ist

Ich habe ein Tool in .net mit c# entwickelt, das beim Ein- und Auschecken bestimmter Dateitypen mit Team Foundation Server helfen soll. Es gibt einen Punkt in der Zeit aber, dass mein Tool wirklich braucht, um zu wissen, was das Dialogergebnis von, wenn ein Benutzer reagiert auf eine Nachricht Dialogfeld, das erscheint, sobald TFS oder "Team Foundation Server" getan ist, eine Zusammenführung. Im Grunde brauche ich mein Tool, um entweder in einer Schleife oder einem Timer zu sitzen und auf diese Antwort zu warten, aber ich bin unsicher, wie ich das erreichen kann. Ich habe es gegoogelt, aber niemand scheint es hat eine Notwendigkeit, dies zu tun hatte.

0voto

Shay Erlichmen Punkte 31367

Sie können verwenden AutoIt können Sie ein Skript schreiben, das auf ein Fenster wartet (mit WinWait ) und tun Sie dann etwas entsprechend.

0voto

shf301 Punkte 30610

Sie könnten verwenden SetWindowsHookEx um eine Hook-Funktion zu installieren, die auf Ereignisse im anderen Prozess wartet. Beachten Sie, dass dadurch die Hook-Funktion in jedem Prozess installiert wird, der in Ihrem System läuft, und in einer unbemannten (C/C++) DLL geschrieben werden muss.

Aber damit könnten Sie die WH_CBT Haken zu und die WH_MSGFILTER Hook, um auf die Schaltflächenklicks im Dialog zu hören.

Dies ist etwas gefährlich, da Sie eine DLL in jeden Prozess injizieren, der unter dem aktuellen Benutzer läuft, d.h. der Code, den Sie in Ihre DLL schreiben, wird in jedem Prozess geladen und ausgeführt. Sie müssen sich auch Gedanken über die Kommunikation zwischen den Prozessen machen, da Ihr Hook-Code im TFS-Prozess ausgeführt wird, auch wenn Sie vielleicht mit dem Namen Mutexe da Sie nur eine einfache Benachrichtigung benötigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X