在Windows服务中从C#中杀死EXCEL.exe进程
我有一个Windows服务,通过Microsoft.Office.Interop.Excel.Application对象打开Excel电子表格。
Application xlApp = new Application();
Workbook workbook = xlApp.Workbooks.Open(fileName, 2, false);
...
...
workbook.Close();
xlApp.Quit();
我想杀死完成工作簿使用后剩余的EXCEL.exe进程。
我试过以下但没有成功......
// This returns a processId of 0
IntPtr processId;
GetWindowThreadProcessId(new IntPtr(xlApp.Hwnd), out processId);
Process p = Process.GetProcessById(processId.ToInt32());
p.Kill();
任何人都有任何关于如何通过Windows服务这样做的想法?
没有找到相关结果
已邀请:
11 个回复
魄龟呸筹
对象:
就像你提到的那样,循环并杀死每个Excel进程通常不是一个好主意,因为如果你将它作为Windows应用程序运行,你可以关闭用户的Excel,或者在服务中关闭正在运行的Excel实例通过其他一些程序。 编辑:有关详细信息,请参阅此问题。
锑寝粒
疾很毋悲
嗓瑰
关闭工作簿并退出xlApp会从我的电脑中的内存中删除EXCEL.EXE。 我正在使用Windows XP 32位和Microsoft Office 2007。 在使用这个测试应用程序之前,我还尝试打开另一个excel文件:第二个EXCEL.EXE被打开并且(使用Quit)在结束时关闭,第一个实例保持不变。
献导外拘
找到所有Excell.exe进程。然后获取我的excelApplication的进程ID。只杀死id匹配的进程。 用于在类中声明GetWindowThreadProcessId:
谷起
到街客核
姬第柔炒
讼乐
让这个过程死亡。
筷啸够对铅
春驹晴陪