我創建了一個excel幫助程序類,用於與Excel交互服務進行交互。 但我注意到excel.exe
沒有在服務器上關閉。 (windows 2008 64bit日語操作系統和office 2007 32bit)。 當我用進程管理器檢查它表明類似工具提示:Microsoft Office Interop Excel未關閉Windows 2008 64位和Office 2007 32位
Path:[Error opening process]
我做excel.Quit()
和Marshal.FinalReleaseComObject(_xlApp)
但沒有按預期工作,然後試圖通過processID
殺的過程中,仍然沒有殺死進程。
uint processID = 0;
GetWindowThreadProcessId((IntPtr)_hWnd, out processID);
if (processID != 0)
{
System.Diagnostics.Process.GetProcessById((int)processID).Kill();
}
然後我嘗試了下面兩種方法,但它關閉了所有手動打開的Excel文檔。
System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcessesByName("EXCEL");
foreach (System.Diagnostics.Process p in procs)
{
int baseAdd = p.MainModule.BaseAddress.ToInt32();
if (baseAdd == _xlApp.Hinstance)
{
p.Kill();
}
}
System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcessesByName("EXCEL");
foreach (System.Diagnostics.Process p in procs)
{
if (p.MainWindowTitle.Length == 0)
{
p.Kill();
}
}
有關如何處理這種情況的任何想法?
喜,@raist非常感謝您的意見。似乎是一個好方法。讓我試試這個,並且會更新你。 – Ullas