游客发表

易语言怎么检测进程是否存在

发帖时间:2026-10-17 04:35:57

易语言里检测进程是易语言检否存在,核心就一条命令:进程_是测进程否存否存在 ()。这命令来自精易模块,易语言检不是测进程否存系统自带的。你要是易语言检没用模块,就得自己调API,测进程否存麻烦不少。易语言检

我写个最简单的测进程否存例子。在窗口上放个按钮,易语言检点击后检测“QQ.exe”在不在:

.版本 2 .支持库 spec .子程序 _按钮1_被单击 .局部变量 结果,测进程否存 逻辑型 结果 = 进程_是否存在 (“QQ.exe”) 调试输出 (结果) 

运行后,输出“真”就是易语言检有,“假”就是测进程否存没。就这么直接。易语言检不过这里有个坑——进程名字必须带后缀。测进程否存你写“QQ”它找不到,易语言检写“QQ.exe”才行。大小写倒无所谓,Windows不区分。

有人会问,那系统进程呢?比如“svchost.exe”,这命令一样能查。但注意,同名进程可能有多个,这命令只返回“有没有”,不告诉你具体几个。想查数量得用别的命令,比如进程_枚举 (),遍历一遍自己数。

实际使用中,最烦的是权限问题。有些进程是管理员权限跑的,你的程序如果是普通权限,进程_是否存在可能返回假——不是它不存在,是你没权限看。我遇到过一回,写个工具检测杀毒软件进程,明明开着,程序却说没有。后来用管理员身份运行,就好了。这问题官方文档没写清楚,坑了不少新人。

还有个细节,进程名带空格或特殊字符的,比如“Google Chrome.exe”,直接传全名就行,命令内部会处理。但你要是拿进程ID来查,就得用进程_是否存在 (进程ID),参数类型不一样,别搞混。

说说性能。这命令是瞬间返回的,不会卡界面。但你要是每秒查一次,查个几百次,CPU占用会稍微上来一点。正常用没事,别写死循环里就行。我见过有人写个死循环监控某进程,结果自己程序先崩了——不是命令的问题,是逻辑没写退出条件。

最后给个实用场景。做游戏辅助或者外挂的人常用这个检测游戏是否启动,启动了才执行操作。正经用途也有,比如你写个程序,检测到某个办公软件没开,就提示用户先打开。这命令做这些事,效率够用,代码也短。

要是你不想用模块,自己写API,核心就三步:CreateToolhelp32Snapshot拍快照,Process32First加Process32Next循环比较进程名。代码量翻三倍,还得处理句柄释放。除非有特殊要求,否则直接用模块省事。

写完了。这命令没啥高深的,记住三点:带后缀、注意权限、别死循环。够你用了。

    热门排行

    友情链接