Foxtable(狐表)用户栏目专家坐堂 → 如何找到程序执行时的句柄的进程ID,然后杀掉该进程


  共有1505人关注过本帖树形打印复制链接

主题:如何找到程序执行时的句柄的进程ID,然后杀掉该进程

帅哥哟,离线,有人找我吗?
wh420
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10562 威望:0 精华:0 注册:2014/2/19 16:32:00
如何找到程序执行时的句柄的进程ID,然后杀掉该进程  发帖心情 Post By:2017/2/6 18:00:00 [显示全部帖子]

问题1:程序反复打开多个EXCEL读取其中内容到狐表中,读取完成后关闭狐表,但只要程序不关闭系统进程中会有多个EXCEL进程,如何找到当前句柄的ID并杀掉该进程?
(注:曾经用过GC.Collect();来回收垃圾,但程序执行完了始终还有一个EXCEL进程无法清除)

问题2:下面代码是我在网上找的,如何修改使其在狐表中生效
IntPtr t = new IntPtr(excelApp.Hwnd);
                
int k = 0;
                GetWindowThreadProcessId(t, 
out k);
                System.Diagnostics.Process p 
= System.Diagnostics.Process.GetProcessById(k);
                p.Kill();

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10562 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2017/2/6 18:59:00 [显示全部帖子]

GetWindowThreadProcessId用这个函数如何获得进程PID再进行KILL掉进程,不是盲目地见到EXCEL进程就杀掉。

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10562 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2017/2/6 18:59:00 [显示全部帖子]

   public void Close(bool isSave)
        {
            
try
            {
                excelWorkBook.Close(isSave, Type.Missing, Type.Missing);
                excelApp.Quit();
            }
            
catch
            {
                IntPtr t 
= new IntPtr(excelApp.Hwnd);
                
int k = 0;
                GetWindowThreadProcessId(t, 
out k);
                System.Diagnostics.Process p 
= System.Diagnostics.Process.GetProcessById(k);
                p.Kill();
            }
            excelWorkBook 
= null;
            excelApp 
= null;
            GC.Collect();
        }

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10562 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2017/2/6 19:00:00 [显示全部帖子]

用msexcel的方式打开EXCEL

 回到顶部