vc 关闭外部应用程序

来源:互联网 发布:哪些明星有淘宝店 编辑:程序博客网 时间:2024/06/10 09:18

参数是要杀死的窗口名称  
  BOOL   FindProcessHandleAndKill(const   CString   &cs_WndName)  
  {  
  HWND   hWnd;  
  DWORD   ProcessID;  
  HANDLE   hProcess;  
   
  hWnd=::FindWindow(NULL,   cs_WndName);  
  if(hWnd==NULL)//テサモミユメオスエーソレ  
  {  
  return   FALSE;  
  }  
  else  
  {  
  if(GetWindowThreadProcessId(hWnd,   &ProcessID)==0)//ハァーワ  
  {  
  return   FALSE;  
  }  
  else  
  {  
  hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,ProcessID);  
  if(hProcess==NULL)  
  {  
  return   FALSE;  
  }  
  else  
  {  
  if(TerminateProcess(hProcess,   0))  
  {  
  return   TRUE;  
  }  
  else    
  {  
  return   FALSE;  
  }  
  }  
  }  
  }  
   
  }

如何获取窗口句柄(VC)
自身窗口句柄可用AfxGetMainWnd获取。
系统中其他APP的窗口句柄可用FindWindow获取(用SPY帮一下忙).
AfxGetMainWnd获取自身窗口句柄。
可用FindWindow获取系统中其他窗口句柄.
HWND hWnd = AfxGetMainWnd()->m_hWnd;
HWND hWnd =::FindWindow(NULL,"XXXXXX");
如:
HWND hBtnClose;
HWND hWnd=::FindWindow(NULL,"腾讯QQ系统广播");
if(hWnd)
{
hBtnClose=GetDlgItem(hWnd,2);
if(hBtnClose)
PostMessage(hBtnClose,BM_CLICK,NULL,NULL);
}


比如查看 Internet选项 窗口是否正打开着:
hwndParent=::FindWindow("#32770","Internet属性");//(for winme)
hwndParent=::FindWindow("#32770","Internet选项");//(for winXP


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/movayhust/archive/2009/08/07/4421704.aspx