2012-11-29 55 views
1

我們在我們的一些自動化測試拆解中使用了taskkill.exe,其中一些涉及不得不關閉WPF應用程序。Taskkill.exe未正確關閉WPF應用程序

我發現如果有多個窗口打開,taskkill會殺死活動窗口而不是整個應用程序。我們不希望使用/ F標誌,因爲它不允許應用程序完全關閉並使我們的數據庫「變髒」。

有沒有人遇到這個問題,並找到了解決方案,或有任何想法之前,我們採取一種完全不同的方法?我能找到的最接近的設置是Application.Current.ShutdownModeOnMainWindowClose,但是當然當taskkill執行時主窗口不是前窗。

+0

也許在偵聽關閉命令的應用程序中添加遠程端點。 – usr

+0

Taskkill不會終止窗口,它會終止進程。鑑於您使用「自動化」,這是一個非常粗暴的殺死流程的方式。自動化不起作用時,您只能觸及雙筒獵槍。好吧,沒有好轉。查看TaskMgr.exe並使用查看+選擇列,勾選句柄。它使用槍後它不是零,那麼你有駕駛問題。 –

回答

0

也許Process類可以幫助你。

Process[] p = Process.GetProcessesByName("appname"); 
p[0].CloseMainWindow(); 
+0

我們的自動化測試是在Java中運行的,我認爲這是我們使用外部命令關閉進程的原因。這並不是說我們不會考慮某種可能適用於此的Java變體。 – Dave

+0

Ahh ..對不起,我不知道你的自動化是基於Java的 –

+0

因爲看起來我的問題的答案可能只是「以其他方式做」,所以我會將其標記爲答案。感謝您的建議。 – Dave

相關問題