结束excel进程
来源:互联网 发布:程序员转行销售 编辑:程序博客网 时间:2024/05/05 07:49
用excel.dll生成excel文件后,不能及时的结束excel进程,用下面方法结束了excel进程。
1
2using System.Runtime.InteropServices;
3using System.Reflection;
4
5
6 API用来发送消息#region API用来发送消息
7 private object missing = Missing.Value;
8 /**//// <summary>
9 ///API用来发送消息
10 /// </summary>
11 [DllImport("user32.dll", CharSet=CharSet.Auto)]
12 private static extern int SendMessage(int hWnd, int msg, string wParam, string lParam);
13 [ DllImport ( "user32" ) ]
14 private static extern uint FindWindow ( string lpClassName ,System.IntPtr WindowName ) ;
15
16 [DllImport("user32")]
17 private static extern uint GetWindowThreadProcessId(uint hwnd,ref uint lpdwProcessId);
18
19 [DllImport("kernel32")]
20 private static extern uint OpenProcess(uint dwDesiredAccess, uint bInheritHandle, uint dwProcessId);//(0xF0000 | 0x100000| 0xFFF)=ALL RIGHTS
21 [DllImport("kernel32")]
22 private static extern uint TerminateProcess(uint hProcess, uint uExitCode);
23
24 [DllImport("kernel32.dll", SetLastError=true)]
25 private static extern int WinExec ( string lpCmdLine, int nCmdShow) ;
26
27 /**//// <summary>
28 /// 打开浏览器
29 /// </summary>
30 [DllImport("shell32.dll", EntryPoint="ShellExecute", CharSet=CharSet.Auto)]
31 private static extern int ShellExecute(IntPtr hwnd,string lpOperation,string lpFile,string lpParameters,string lpDirectory,int nShowCmd);
32 #endregion
33
34
35
36 /**//// <summary>
37 /// 关闭所有EXCEL进程
38 /// </summary>
39 public void CloseAllExcel()
40 {
41 for(int i=0;i<1000;i++)
42 {
43 uint h=FindWindow("XLMAIN",System.IntPtr.Zero);
44 uint p=0;
45 if(h>0)
46 {
47 GetWindowThreadProcessId(h,ref p);
48 uint tmp=0x0001;
49 if(p!=0)
50 TerminateProcess(OpenProcess(tmp,0,p),0xFFFFFFFF);
51 }
52 else
53 break;
54 // SendMessage(handle, 0x10,"","");
55 }
56 }
57
58
1
2using System.Runtime.InteropServices;
3using System.Reflection;
4
5
6 API用来发送消息#region API用来发送消息
7 private object missing = Missing.Value;
8 /**//// <summary>
9 ///API用来发送消息
10 /// </summary>
11 [DllImport("user32.dll", CharSet=CharSet.Auto)]
12 private static extern int SendMessage(int hWnd, int msg, string wParam, string lParam);
13 [ DllImport ( "user32" ) ]
14 private static extern uint FindWindow ( string lpClassName ,System.IntPtr WindowName ) ;
15
16 [DllImport("user32")]
17 private static extern uint GetWindowThreadProcessId(uint hwnd,ref uint lpdwProcessId);
18
19 [DllImport("kernel32")]
20 private static extern uint OpenProcess(uint dwDesiredAccess, uint bInheritHandle, uint dwProcessId);//(0xF0000 | 0x100000| 0xFFF)=ALL RIGHTS
21 [DllImport("kernel32")]
22 private static extern uint TerminateProcess(uint hProcess, uint uExitCode);
23
24 [DllImport("kernel32.dll", SetLastError=true)]
25 private static extern int WinExec ( string lpCmdLine, int nCmdShow) ;
26
27 /**//// <summary>
28 /// 打开浏览器
29 /// </summary>
30 [DllImport("shell32.dll", EntryPoint="ShellExecute", CharSet=CharSet.Auto)]
31 private static extern int ShellExecute(IntPtr hwnd,string lpOperation,string lpFile,string lpParameters,string lpDirectory,int nShowCmd);
32 #endregion
33
34
35
36 /**//// <summary>
37 /// 关闭所有EXCEL进程
38 /// </summary>
39 public void CloseAllExcel()
40 {
41 for(int i=0;i<1000;i++)
42 {
43 uint h=FindWindow("XLMAIN",System.IntPtr.Zero);
44 uint p=0;
45 if(h>0)
46 {
47 GetWindowThreadProcessId(h,ref p);
48 uint tmp=0x0001;
49 if(p!=0)
50 TerminateProcess(OpenProcess(tmp,0,p),0xFFFFFFFF);
51 }
52 else
53 break;
54 // SendMessage(handle, 0x10,"","");
55 }
56 }
57
58
- 结束excel进程
- 完美结束EXCEL进程
- 结束EXCEL进程
- 结束EXCEL进程
- 彻底结束EXCEL进程
- 结束Excel进程
- C#结束Excel进程
- Excel.exe进程结束方法
- [C#]结束Excel的进程的方法
- ASP.NET控制EXCEL,完全结束进程
- [C#]结束Excel的进程的方法
- [C#]结束Excel的进程的方法
- 在.net中结束Excel,Word进程
- VB程序中怎么样结束EXCEL进程
- 用VB结束Excel的进程
- ole automation vc结束Excel进程
- ole automation vc结束Excel进程
- 操作excel进程结束不了的方法
- 卸掉Tortoise使用CVS
- SVG GML的转换
- 如何:在各种字符串类型之间进行转换
- 如何给员工分配同样多的资料(多列游标,局部游标)
- C#中利用委托传递事件
- 结束excel进程
- ASP中同一个用户登陆N次
- 今天在CSDN上安家了
- 国内外常用wiki程序汇总
- 转载:Ten things programmers might want to know about marketers
- 初步学习Swing
- [linux driver]用I/O命令访问PCI总线设备配置空间
- 跳频介绍
- lucence