2013-02-13 21 views
1

我的vb應用程序用於生成excel報告。在上次運行時,它失敗了,但excel進程仍在服務器後臺運行。如何識別哪個應用程序用於在任務管理器中啓動excel進程

問題是還有一些其他應用程序使用Excel進程生成報告。我需要終止仍在後臺運行的excel的特定實例。

+0

也許這可能有所幫助:http://www.pbdr.com/vbtips/api/FindCloseAPI.htm - 我使用該代碼來終止腳本中的進程。 – 2013-02-13 09:41:00

+0

這可能有助於未來的代碼更改,但我需要殺死現在正在運行的進程? – Jeyaganesh 2013-02-13 09:56:14

+0

它可以:如果你運行代碼,它會殺死所有具有定義標題的窗口。我用它來殺死我的自定義測試軟件的暫停進程 – 2013-02-13 10:20:59

回答

0

我不知道任務管理器,但Sysinternals Process Explorer會給你這些信息。它列出了顯示父/子進程層次結構的樹視圖中的所有進程。 http://technet.microsoft.com/en-gb/sysinternals/bb896653.aspx

+0

我認爲,從技術上說,excel進程不是應用程序的子進程。它獨立啓動,只受啓動應用程序控制。如果我錯了,請糾正我 – 2013-02-13 08:56:46

0

我之前問過這個問題,壞消息是沒有簡單的方法來做到這一點。 可以做些什麼:當你在應用程序商店中啓動Excel時,PID(如果可用,我不確定)和/或創建文檔的路徑。如果發生錯誤,則通過PID終止特定的Excel過程。或者,如果這是不可能的:遍歷所有打開的Excel實例,並找到打開路徑的實例 - 比殺死那個實例。後一種方法在多用戶環境中存在問題,因爲Excel在被多個應用程序使用時反應不好。

最好的辦法是徹底擺脫服務器上的excel,並轉移到像EPPLUS或Aspose.Cells或其他替代方案的獨立excel寫作庫。但我不知道,如果這些庫仍然可用於VB6。請注意,微軟建議不要在服務器上使用Office

相關問題