David's Blog

认真做事,用心做人!

导航

大富翁里抄的代码,帮了我大忙~

由于软件更新模块进行文件覆盖的时候要判断程序是否正在运行,想过用FindWindow来做,但是效果不怎么好,后来找了下资料看到这个代码不错,已经加到了程序里面,差不多就达到那个目的了哈(先看程序运行没有,如果运行再把已运行的程序进程给Kill掉),昨天因为时间关系没有写完,相信今天就可以拿给他们测试..
uses TLHelp32; 
//ProcessName: 程序或进程名(注意不带路径);返回值: 程序是否运行。 
function ProcessRun(const ProcessName: string): Boolean; 
var 
 hProcess: LongWord; 
 pInfo: TProcessEntry32; 
begin 
 hProcess :
= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
 pInfo.dwSize :
= SizeOf(TProcessEntry32); 
 Result :
= Process32First(hProcess, pInfo); 
 
while Result do 
 begin 
   
if ExtractFileName(pInfo.szExeFile) <> ProcessName then 
     Result :
= Process32Next(hProcess, pInfo) 
   
else Break; 
 end; 
 
if not Result then 
   
//启动程序(这个你自己写吧,我也不知道你的那个程序在什么地方) 
 else MessageBox(0'程序已经运行!''提示', MB_ICONINFORMATION or MB_OK); 
end; 
代码是Delphi的哈,C#还在学习中 ....

posted on 2007-04-13 08:32  David Qiu  阅读(370)  评论(0)    收藏  举报