端游龙之谷有热键一键关闭游戏进程实现紧急掉线的需求(圈内称秒掉器)。国服更新客户端从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等英文网站。

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

  1. python获取进程编号(目的、获取当前进程编号、根据编号杀死指定进程号、获取当前父进程编号)

    1. 获取进程编号的目的         获取进程编号的目的是验证主进程和子进程的关系,可以得知子进程是由那个主进程创建出来的. 获取进程编号的两种操作 获取当前进程编号 获取当前父进程编号 2. 获 ...

  2. Linux kill 杀死指定进程

    Linux kill 杀死指定进程 一  杀死指定进程 现知道有一个php线程正在运行,需要杀死 root 26278 1 0 2015 ? 00:00:31 /usr/local/php/bin/p ...

  3. linux中杀死指定进程,Linux中通过 kill命令 杀死指定进程

    一  杀死指定进程 现知道有一个curl线程正在运行,需要杀死 anggang@barry$ curl -y 30 -Y 1 -m 300 -x 8.8.8.8:808 -o html_baidu h ...

  4. vbs 杀死进程_VBS杀死指定进程

    以下是一小段杀死指定进程名字的小vbs,希望对大家有帮助. Function KillProc(strProcName) On Error Resume Next Set objWMIService ...

  5. linux 杀死指定pid,Linuxkill杀死指定进程

    一.杀死指定进程 现知道有一个curl线程正在运行,需要杀死 anggang@barry$ curl -y 30 -Y 1 -m 300 -x 8.8.8.8:808 -o html_baidu ht ...

  6. linux杀死指定名称的进程,Linux kill 杀死指定进程

    一  杀死指定进程 现知道有一个php线程正在运行,需要杀死 root 26278 1 0 2015 ? 00:00:31 /usr/local/php/bin/php /var/www/html/r ...

  7. android 命令kill进程号,一定是我打开的姿势不对——Android下使用kill命令杀死指定进程...

    环境:Android 5.1.1(已root) 最近有一个需求,需要在Android下杀死指定pid的进程.Android原生API提供了几个接口: (1)android.os.Process.kil ...

  8. linux杀死指定进程中的线程,linux查看进程和线程的命令

    1.任务:获得进程信息 :ps命令,或者top命令,它能显示当前运行中进程的相关信息,包括进程的PID. ps命令能提供一份当前进程的快照.如果想状态可以自动刷新,可以使用top命令. 2.任务:获得 ...

  9. Linux通过端口号杀死指定进程

    前言: 我们在服务器上升级项目的时候,需要将原来的项目停止,然后启动新的项目. 这时候我们只知道应用所占的端口号,如何将进程杀死呢? linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 ...

  10. Windows编程—杀死指定路径程序文件的进程

    前言 由于Windows命令 taskkill 无法通过程序文件的完整路径匹配来杀死指定进程,通过程序名称容易误杀进程,所有笔者做了一个简单的封装做了个mytaskkill.exe,用来杀死指定路径的 ...

最新文章

  1. android 多个应用,Android中一个应用实现多个图标的几种方式
  2. MPEG2-TS音视频同步原理
  3. 基于用户投票的排名算法(四):牛顿冷却定律
  4. plsql oracle服务端,PLSQL Developer + Oracle客户端简易安装方法
  5. xilinx IP核之ROM
  6. RecyclerView+CardView
  7. ubuntu 20上安装gdbgui
  8. Manjaro Linux执行某些命令缺少libtinfo.so.5问题
  9. eclipse导入项目pom文件报错_eclipse导入maven管理的项目时,pom.xml第一行报错。错误如图1。而且dubbo的xml也不识别。...
  10. python发QQ邮件
  11. matlab写的串口通信图像上位机,MATLAB的串口通信
  12. javascript 字符串和json的互转
  13. Android美化插件,KWGT桌面插件美化
  14. 20200608模拟赛 Endless
  15. 企业金融App评测系列——微众银行以App构筑企业金融服务新生态,成为企业的随身数字银行
  16. uni--ReferenceError plus is not defined
  17. tp6静态.htaccess
  18. Spring AOP 切面记录操作日志
  19. 史上最全第三代半导体产业发展介绍(附世界各国研究概况解析)
  20. 阿里云购买Symantec(赛门铁克)免费的SSL

热门文章

  1. RSA公私钥pkcs1与pkcs8格式的转换
  2. OpenGL 视椎体剔除算法
  3. 演进:如何用练习快速提升技术
  4. LaTex 插入超链接
  5. Elixir Meetup 相关不相关的一些感触
  6. pycharm个人最喜欢的配色方案
  7. 考研数据结构之栈(2.5)——练习题之求解二次方根A的迭代函数,写出相应的递归算法和非递归算法(C表示)
  8. oracle 中 使用 begin end 批量更新,删除资料
  9. linux系统添加打印机失败,Linux下设置网络打印机
  10. 《SEM长尾搜索营销策略解密》一一2.5 长尾,互联网时代生存的良药