Delphi 中实现判断某个外部程序是否运行(如果运行则执行一个命令否则执行一个命令)
来源:互联网 发布:青岛软件开发工资待遇 编辑:程序博客网 时间:2024/06/03 19:50
前段时间在写一个工具型小软件时需要实现“在触发某个控件的一个事件时,判断某个外部程序(exe)是否已经运行,如果运行则将该程序主窗体打开或窗口置顶,如果没有运行,就通过一个自己指定的路径打开该应用程序”,虽然逻辑上看上去非常easy,但是本人确实没有写过,于是开始搜索资料,无奈很多资源都无法实现需求。。。so,自己动手,丰衣足食;
虽然耗时较长,还是整出来了,以下是通过函数在一个button事件中调用的。
//下行代码加入到pas文件代码起始处use中,使用 TLHelp32 单元
uses TLHelp32 //注意不要遗漏此项,省的多按一次run
//创建自定义函数(寻找进程)function FindProcess(AFileName: string): boolean;//
var
hSnapshot: THandle;//用于获得进程列表
lppe: TProcessEntry32;//用于查找进程
Found: Boolean;//用于判断进程遍历是否完成
begin
Result :=False;
hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//获得系统进程列表
lppe.dwSize := SizeOf(TProcessEntry32);//在调用Process32First API之前,需要初始化lppe记录的大小
Found := Process32First(hSnapshot, lppe);//将进程列表的第一个进程信息读入ppe记录中
while Found do
begin
if ((UpperCase(ExtractFileName(lppe.szExeFile))=UpperCase(AFileName)) or (UpperCase(lppe.szExeFile )=UpperCase(AFileName))) then
begin
Result :=True;
end;
Found := Process32Next(hSnapshot, lppe);//将进程列表的下一个进程信息读入lppe记录中
end;
end;
//例子 if FindProcess('soft.exe') then Showmessage('发现软件程序已运行,请在任务栏还原程序');
Ps:但是本人只实现了判断程序是否运行,如果运行的话就弹窗提示(因为确实不知道让所指定的exe主窗口打开或者置顶应该怎么写/实现),如果哪位仁兄知道方法,还请留言不吝赐教!
0 0
- Delphi 中实现判断某个外部程序是否运行(如果运行则执行一个命令否则执行一个命令)
- shell 中如何判断前一个命令是否执行成功
- mkdir是windows的一个命令,也就是在命令行可以直接运行的命令。如果你在命令行中可以直接执行"python" 那么就可以替换执行
- VC++ ShellExecute 执行、运行一个外部程序函数功能详解:
- delphi执行一个外部程序,当外部程序结束后,delphi程序立即响应(续)
- 如何在shell脚本中,判断一个基本命令执行是否成功?
- 如何在shell脚本中,判断一个基本命令执行是否成功?
- java判断一个程序是否已经运行
- 怎么判断一个程序是否在运行
- 运行中几个特殊的执行命令
- 在Java中运行一个外部程序
- linux的shell命令检测某个java程序是否执行
- java程序执行外部命令
- delphi执行一个外部程序,当外部程序结束后,delphi程序立即响应
- delphi执行一个外部程序,当外部程序结束后,delphi程序立即响应
- delphi执行一个外部程序,当外部程序结束后,delphi程序立即响应
- 判断命令是否成功执行 .
- WINFORM判断程序是否运行,且只能运行一个实例
- java中传参
- gnuplot画图一
- 类加载过程 闲谈
- 【Design Pattern】外观模式 Facade
- 学以致用之冒泡排序
- Delphi 中实现判断某个外部程序是否运行(如果运行则执行一个命令否则执行一个命令)
- Git使用详细教程
- MyBatis:Invalid bound statement (not found)
- 整数中1出现的次数(从1到n整数中1出现的次数)
- 记录
- 博客更新申明-置顶
- 【C++】指向指针的指针int**的深复制的实现
- HDU 1237 简单计算器
- Lucene 4.X 倒排索引原理与实现: (1) 词典的设计