关于WIN CE下如何结束一个任意的进程

hanbin   2009-11-18 11:32 楼主
在WIN CE下如何结束一个任意的进程,比如,我想结束explorer.exe
网上看了一段:
  
  HWND  hWnd;  
  //  先得到想要关闭的窗口的句柄  
  //  比如用FindWindow  
  hWnd=FindWindow(NULL,_T("dlg"));   
  if  (  hWnd  ==NULL  )  
  return  ;  
  //  下面是关闭进程的两种方法  
  //  //  如果来文的则  //  
  ::PostMessage(hWnd,WM_CLOSE,0,0);  
   
  //  //  如果来武的则  //  
  DWORD  dwProcessId;  
  //  得到该窗口的进程ID  
  GetWindowThreadProcessId(hWnd,&dwProcessId);  
  //  从进程ID打开进程句柄  
  HANDLE  handle=OpenProcess(0,FALSE,dwProcessId);  
  //  强制终止进程  
  TerminateProcess(handle,0);  
   
  foenix  
   
  转贴自vckbase  


本文来自eeworld博客,转载请标明出处:http://blog.eeworld.net/seanchan/archive/2009/01/04/3705419.aspx


先用hWnd=FindWindow(NULL,_T("dlg"));来获得一个窗口的句柄,
然后用GetWindowThreadProcessId(hWnd,&dwProcessId);  来获得这个句柄的ID号,
最后用TerminateProcess(handle,0);去结束这个进程。

但是我想关闭的是explorer.exe呢?如何得到它的ID号?
FindWindow好像是,获得一个顶层窗口的句柄,我按上面了例子试了一下,好像hWnd=FindWindow(NULL,_T("dlg"));
会报错:error C2440: '=' : cannot convert from 'CWnd *' to 'HWND'两个类型不符.

还有能不能在WIN CE下获得进程的列表啊?










回复评论 (7)

都可以做到,用对应的API.
点赞  2009-11-18 12:16
呵呵,完全没有问题嘛
点赞  2009-11-18 13:50
嗯,原来要添加toolhelp.lib
点赞  2009-11-18 14:21
mark
点赞  2009-11-18 15:42
引用: 引用 3 楼 tcdl85 的回复:
嗯,原来要添加toolhelp.lib

不应该吧,如果是没有添加toolhelp.lib引起的话,应该编译就出问题吧
点赞  2009-11-18 18:57
是啊。。。之前就是编译出错了。。。现在拨弄出来了~~~
点赞  2009-11-19 10:56
引用: 引用 6 楼 tcdl85 的回复:
是啊。。。之前就是编译出错了。。。现在拨弄出来了~~~

哦,这就对了
点赞  2009-11-19 22:08
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复