2009-08-27 29 views
2

我使用c#開發了一個.NET工具,它將幫助使用Team Foundation Server檢入和檢出特定類型的文件。儘管我的工具確實需要知道當用戶對消息對話框的響應時,對話框的結果是什麼,當TFS或「Team Foundation Server」完成合並時彈出消息對話框。基本上我需要我的工具來坐在一個循環或計時器,並等待這種反應,但我不確定如何做到這一點。我用Google搜索了它,但似乎沒有人需要這樣做。從進程外對話框中檢測對話結果

+0

如果您仍在尋找解決方案,我可能會有一個。但是,爲了向您提供最佳解決方案,我想知道處理結果是否在同一臺計算機上或通過網絡。 – IAbstract 2010-02-12 07:53:35

+0

我一定會很高興看到解決方案是什麼。我其實不再看,但我很感興趣。爲了回答你的問題,處理結果不在同一臺機器上。 謝謝,丹 – danielea 2010-02-22 22:11:24

回答

0

您可以使用AutoIt,您可以編寫將等待窗口的腳本(使用WinWait),然後按照下列步驟執行操作。

+0

我欣賞反饋。它不是我想要的,但我很欣賞這種努力。 – danielea 2009-08-29 12:17:24

0

您可以使用SetWindowsHookEx來安裝鉤子函數來偵聽其他進程中的事件。請注意,這將在系統中運行的每個進程中安裝鉤子函數,並且必須用無人(C/C++)DLL編寫。

但是有了這個,您可以使用WH_CBT鉤子鉤子和WH_MSGFILTER鉤子來監聽對話框上的按鈕點擊。

這樣做有些危險,因爲您將在當前用戶下運行的每個進程中注入一個DLL,即您在DLL中編寫的代碼將在每個進程中加載​​並執行。您還需要擔心進程間通信,因爲您的鉤子代碼將在TFS進程中運行,但由於您只需要一個簡單的通知,因此您可能會名爲mutexes