定时结束指定进程小程序

易语言 2020-08-18 18:27:46

定时结束指定进程小程序

输入框 (“请在下面输入需要定时结束进程的程序名,如:e.exe ,可用 | 分隔一次输入多个任务:”, “输入新任务”, “”, 任务文本, #输入文本)
批量载入任务 (任务文本)

进程数组 = 分割文本 (任务文本, “|”, )
.计次循环首 (取数组成员数 (进程数组), 计次循环)
.如果真 (进程任务是否存在 (进程数组 [计次循环]) = 假)
任务列表框.加入项目 (进程数组 [计次循环], )
.如果真结束
处理事件 ()
.计次循环尾 ()

.判断开始 (任务列表框.取项目数 () < 1)
信息框 (“未添加需要结束的进程任务!”, 48, “提示”)
.判断 (操作框.现行选中项 = -1)
信息框 (“操作类型选择不正确!”, 48, “提示”)
.默认
设置禁止项目 (取反 (是否开启定时))

.子程序 KillProcess
.参数 sProcess, 文本型, , 要关闭进程名称
.局部变量 lSnapShot, 整数型, , , 进程快照
.局部变量 lNextProcess, 整数型, , , 进程句柄
.局部变量 lProcess, 整数型, , , 终止进程句柄
.局部变量 lExitCode, 整数型, , , 终止进程码
.局部变量 tPE, PROCESSENTRY32, , , 进程信息

lSnapShot = CreateToolhelp32Snapshot (#TH32CS_SNAPALL, 0)
.如果真 (lSnapShot ≠ -1)
tPE.dwSize = 296
lNextProcess = Process32First (lSnapShot, tPE)
.判断循环首 (lNextProcess ≠ 0)
.如果 (寻找文本 (到文本 (tPE.szExeFile), sProcess, , 真) ≠ -1)
lProcess = OpenProcess (1, 0, tPE.th32ProcessID)
TerminateProcess (lProcess, lExitCode)
CloseHandle (lProcess)
.否则

.如果结束
lNextProcess = Process32Next (lSnapShot, tPE)
.判断循环尾 ()
CloseHandle (lSnapShot)