资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

怎么用DELPHI做个程序来检测某个应用程序是否在运行?如果在运行就关闭该应用程序?

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

请高手帮忙!最好有源代码!

网友回答:

发表者:PoolD

简单的方法是用FindWindow,再发送WM_CLOSE消息。但这对某些程序无效。  
   
  也可以列举系统的进程,根据进程找到文件名,符合则杀掉。

发表者:wycg_cnh20

SendMessage(FindWindow(nil,Pchar(YourApplicationTitle),   WM_CLose,0,0));

发表者:cosmart

//需要uses   TLhelp32;  
  KillTask(ExeFileName:   string):   integer;  
  const  
  PROCESS_TERMINATE=$0001;  
  var  
  ContinueLoop:   BOOL;  
  FSnapshotHandle:   THandle;  
  FProcessEntry32:   TProcessEntry32;  
  begin  
   
  result   :=   0;  
  FSnapshotHandle   :=   CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);  
   
  FProcessEntry32.dwSize   :=   Sizeof(FProcessEntry32);  
  ContinueLoop   :=   Process32First(FSnapshotHandle,FProcessEntry32);  
  while   integer(ContinueLoop)   <>   0   do  
  begin  
  if   ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile))   =  
  UpperCase(ExeFileName))  
  or   (UpperCase(FProcessEntry32.szExeFile)   =  
  UpperCase(ExeFileName)))   then  
  Result   :=   Integer(TerminateProcess(OpenProcess(  
  PROCESS_TERMINATE,  
  BOOL(0),  
  FProcessEntry32.th32ProcessID),0));  
   
  ContinueLoop   :=   Process32Next(FSnapshotHandle,FProcessEntry32);  
  end;  
  CloseHandle(FSnapshotHandle);  
  end;  
  //使用  
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
  KillTask(notepad.exe);  
  end;  
  procedure   TForm1.Button4Click(Sender:   TObject);  
  begin  
  KillTask(notepad.exe);  
  end;  
 

发表者:wycg_cnh20

如果应用应用程序的主窗体没出现的话,可能会失效


 

 
热门推荐笔记本: 联想笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved