基于.net实现F4一键杀死指定进程(龙之谷秒掉器)

端游龙之谷有热键一键关闭游戏进程实现紧急掉线的需求(圈内称秒掉器)。国服更新客户端从32位变64位后以前的秒掉器不可用。2021年4月自己无C#基础花一周实现了该功能。前后迭代了几个版本,见B站该专栏的记录。简易秒掉器界面如下:
在这里插入图片描述
由于是我自己的专栏,直接将关键内容转载至此处如下:

  • 第一版:.net Core 3.1 WPF和进程管理API+ RegisterHotKey
    这是模仿好友发给我的秒掉写的,写好之后发现要装.net Core或者.net Framework的运行时库,其他人使用起来不便。第一、第二版本都写好后测试,F4秒掉只能在龙之谷游戏窗口没有获得焦点时生效。后续发现是因为用user32.dll中的RegisterHotKey这个API的局限。

  • 第二版:Windows窗体和进程管理API + RegisterHotKey
    用Windows自带的GUI组件,不用装任何额外的库,问题跟第一版一样,F4秒掉只能在龙之谷游戏窗口没有获得焦点时生效。而且这个版本跟其他两版相比,感受到从按下F4到游戏秒退这段时间有较明显的延时。估计是进程管理API之间的性能差异导致的。

  • 第三版:.net Framework 4.8 WPF和进程管理API + SetWindowsHookEx
    支持全局F4热键秒掉,包括龙之谷游戏进程获得焦点时。唯一的缺点是不能连续快速按F4,会导致系统假死,一段时间后秒掉程序被系统强制移除钩子并强制退出。由于初次接触钩子,不明白是何原因造成如此低下的性能,但是目前够用,毕竟开了秒掉也不会没事狂按F4,不用秒掉退出秒掉程序就行。

———————————————————以上为转载—————————————————————
最终版本摒弃热键的实现思路,直接调用底层API监听键盘输入,稳定。代码公布在Gitee码云 代码未经整理直接将Visual Studio所有文件打包上传。由于时间较为久远,实现时基于应用,本文技术描述不一定准确。
总结:前三版都是通过百度搜索到的思路,找来找去都是这些。最终版本是独立思考+亲自查阅微软API+英文网站检索得到的结果。英文基础足够的情况下,编程遇到问题还是应该优先找找Stackoverflow等英文网站。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值