开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

12
返回列表 发新帖
楼主: 360云盘
收起左侧

[精币悬赏] 有没有大佬在? 写一个结束进程

[复制链接]
结帖率:100% (2/2)
发表于 2026-1-19 16:09:09 | 显示全部楼层   贵州省黔东南苗族侗族自治州
试试这个 扣精易模块的

枚举进程并结束demo.e

7.38 KB, 下载次数: 10, 下载积分: 精币 -1 枚

回复

使用道具 举报

结帖率:100% (48/48)

签到天数: 7 天

发表于 2026-1-19 16:42:08 | 显示全部楼层   广东省佛山市
加V:ly992489316
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 1 天

发表于 2026-1-19 18:50:20 | 显示全部楼层   广东省广州市
.版本 2
.支持库 spec

.DLL命令 EnumWindows, 逻辑型, "user32.dll", "EnumWindows", , 枚举系统所有顶层窗口,回调遍历
    .参数 lpEnumFunc, 子程序指针, , 回调子程序的地址
    .参数 lParam, 整数型, , 自定义传参,这里传0即可

.DLL命令 GetWindowTextA, 整数型, "user32.dll", "GetWindowTextA", , 获取指定窗口的标题文本
    .参数 hwnd, 整数型, , 待获取标题的窗口句柄
    .参数 lpString, 文本型, , 接收标题的缓冲区
    .参数 cch, 整数型, , 缓冲区最大长度

.DLL命令 GetWindowThreadProcessId, 整数型, "user32.dll", "GetWindowThreadProcessId", , 通过窗口句柄,获取对应进程的PID
    .参数 hwnd, 整数型, , 窗口句柄
    .参数 lpdwProcessId, 整数型, 传址, , 传出:窗口所属进程的PID

.DLL命令 OpenProcess, 整数型, "kernel32.dll", "OpenProcess", , 打开指定PID的进程,获取进程句柄
    .参数 dwDesiredAccess, 整数型, , 申请的权限
    .参数 bInheritHandle, 逻辑型, , 是否继承句柄,填假
    .参数 dwProcessId, 整数型, , 要打开的进程PID

.DLL命令 TerminateProcess, 逻辑型, "kernel32.dll", "TerminateProcess", , 结束指定进程(核心结束命令)
    .参数 hProcess, 整数型, , 进程句柄(由OpenProcess获取)
    .参数 uExitCode, 整数型, , 进程退出码,填0即可

.DLL命令 CloseHandle, 逻辑型, "kernel32.dll", "CloseHandle", , 释放打开的进程句柄,防止内存泄漏
    .参数 hObject, 整数型, , 要释放的句柄

.子程序 _启动窗口_创建完毕, , , 程序运行后自动执行【结束目标进程】的逻辑,你可以把这段放到任意需要执行的位置

    自身进程PID = 取进程ID ()  ' 关键!获取自己的PID,绝对不杀自己
    调试输出 (“自身程序PID:”, 自身进程PID)
    EnumWindows (&窗口枚举回调子程序, 0)  ' 开始枚举所有窗口,执行筛选+结束逻辑
    信息框 (“已完成清理:所有标题为【你好】的1.exe进程已全部结束!”, 0, )

.全局变量 自身进程PID, 整数型, , 存储自己的进程PID,用于防误杀

.子程序 窗口枚举回调子程序, 逻辑型, , EnumWindows的回调子程序,核心筛选逻辑
    .参数 窗口句柄, 整数型, , 当前遍历到的窗口句柄
    .参数 自定义参数, 整数型, , 无用传参,填0即可
    .局部变量 窗口标题, 文本型
    .局部变量 目标进程PID, 整数型
    .局部变量 进程句柄, 整数型

    ' 1. 初始化标题缓冲区,获取当前窗口的标题
    窗口标题 = 取空白文本 (256)
    GetWindowTextA (窗口句柄, 窗口标题, 256)
    窗口标题 = 删首尾空 (窗口标题)  ' 去除标题前后空格,精准匹配【你好】
   
    ' 2. 核心筛选条件:窗口标题 精确等于 【你好】
    .如果真 (窗口标题 = “你好”)
        ' 3. 通过窗口句柄,获取这个窗口所属进程的PID
        GetWindowThreadProcessId (窗口句柄, 目标进程PID)
        
        ' 4. 防误杀核心判断:如果这个PID是自己的PID,直接跳过,绝对不处理
        .如果真 (目标进程PID = 自身进程PID)
            返回 (真)  ' 继续枚举下一个窗口
        .如果真结束
        
        ' 5. 打开目标进程,申请【结束进程】的权限
        进程句柄 = OpenProcess (1& 或 16&, 假, 目标进程PID)
        .如果真 (进程句柄 ≠ 0)
            ' 6. 执行结束进程操作
            TerminateProcess (进程句柄, 0)
            ' 7. 释放进程句柄,必须加,防止内存泄漏
            CloseHandle (进程句柄)
            调试输出 (“成功结束:标题为【你好】的进程,PID=”, 目标进程PID)
        .如果真结束
    .如果真结束
   
    返回 (真)  ' 返回真,继续枚举下一个窗口,直到枚举完所有窗口
回复

使用道具 举报

结帖率:100% (14/14)

签到天数: 7 天

发表于 2026-1-20 00:04:29 | 显示全部楼层   天津市天津市
只能跟你说思路,取同名进程ID,然后再循环判断这些进程ID的路径,不是自己程序的路径一律结束
回复

使用道具 举报

签到天数: 9 天

发表于 2026-3-14 10:11:05 | 显示全部楼层   重庆市重庆市
#在这里快速回复#
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表