乌噜托拉蟒

导航

解决程序操作Excel后结束EXCEL.EXE的方法

1.导入命名空间:using System.Runtime.InteropServices;

2.添加API引用部分的代码,放入 class 内部:

1 [DllImport("User32.dll", CharSet = CharSet.Auto)]
2 public static extern int GetWindowThreadProcessId(IntPtr hwnd, out   int ID);

3.结束程序时,结束EXCEL.EXE进程
例:

1 int id = 0;
2 Excel.Application app = new Excel.Application();
3 IntPtr ptr = new IntPtr(app.Hwnd);
4 GetWindowThreadProcessId(ptr, out id);
5 Process proc = Process.GetProcessById(id);
6 proc.Kill();

**注:
需要添加:Microsoft.Office.Interop.Excel
添加命名空间:
using Excel = Microsoft.Office.Interop.Excel;
using System.Diagnostics;

GetWindowThreadProcessId用法:
函数功能:该函数返回创建指定窗口线程的标识和创建窗口的进程的标识符,后一项是可选的。
函数原型:DWORD GetWindowThreadProcessld(HWND hwnd,LPDWORD lpdwProcessld);
参数:
hWnd:窗口句柄。
lpdwProcessld:接收进程标识的32位值的地址。如果这个参数不为NULL,GetWindwThreadProcessld将进程标识拷贝到这个32位值中,否则不拷贝。
返回值:返回值为创建窗口的线程标识。

posted on 2012-09-29 09:19  乌噜托拉蟒  阅读(396)  评论(0编辑  收藏  举报