2010-03-04 19 views
2

我有CruiseControl.net運行Visual Studio(2005/2008 - 使用devenv.com),因爲我們需要構建部署項目(.vdproj )。殺死一個程序,如果它顯示一個對話框(devenv.com在CruiseControl.net下運行)

有時,由於各種原因,devenv決定即使它是從命令行運行,使用devenv.com varient,它仍然想要建立一個對話框。

現在,由於它在遠程服務器上的CruiseControl.net下運行,所以從未見過這種情況,唯一的癥結在於構建最終超時。當構建仍在進行時,查看任務顯示devenv運行,但不消耗任何處理器能力。

是否有一個方便的工具可以運行devenv.com,它基本上監視它啓動的程序,並基本上殺死它,如果它敢於顯示任何類型的對話框?

回答

2

是什麼樣的對話框,它爲什麼?你可以編寫一個應用程序來關閉對話框,但這並不容易 - 你需要使用CBT Hooks之類的東西。

+0

我們使用ClearCase進行版本控制 - 它有一些問題,包括不能在不同地方引入隨機字符的情況下合併.vdproj文件。有隨機損壞的.vdproj文件放置對話框。我現在已經明白了這一點 - 它是關於源代碼控制不匹配的對話框(我們沒有專門在構建服務器上使用ClearCase),但是已經拍攝了這些對話框。只是.vdproj文件腐敗問題 - 我有一個更長期的方法來解決這個問題 - 專門爲他們寫一個合併管理器,但這不是一件快速簡單的工作。 – 2010-04-14 15:29:15

+1

您可能不需要CBT掛鉤。您可能可以編寫一個簡單的.net EXE,它使用像White這樣的UI測試框架來查找具有已知標題/名稱的窗口並將其解除。 http://white.codeplex.com/ – 2010-04-15 02:51:36

相關問題