写这篇文章的目的不是单单让大家解决一个现实中遇到的难题!而是我想通过将我自己遇到问题解决问题思路和方法传递给大家,希望做到到“授之以渔”,而不是“授之以鱼”,这个问题前前后后用了三天时间解决,所以大家也发现其实大神也不是那么好做的,大神的背后是默默的付出和长时间的坚持,我能解决问题就是我比你多坚持了一下而已!不怕大家耻笑,测试这个问题,各种询问,发帖整整用了我一下午,但是我不后悔,最后解决的时候我内容是激动的!这也是我解决问题过程和内心独白吧!
发现问题
尝试解决问题
被人喊了一句大神,内心是飘忽的,看了一下问题也不是什么麻烦的问题,这位网友也是很诚恳的。帮帮这位兄弟吧!按照他说的问题写了一个简单的脚本进行测试,果不其然,偶尔会触发ctrl键,代码如下:
!2::
SendInput,{m}
SendInput {down 7}{Enter 3}
return
一下有点懵逼,什么情况,触发键也没有ctrl,发送的按键也没有ctrl,怎么就出来一个ctrl键呢??????那就调试看看吧!!
经过一番调试确实触发了ctrl按键:
这时候我怀疑是不是黏连键的问题,我把down和enter发送次数都调整到发送一次,发现问题依然如故,留下我一脸错愕。我还不信了,反复调,反复调,最后问题也没有解决,每次都是调试到return出现,所以我就怀疑是enter按键可能会触发ctrl键。
接下来我解决不了了,首先查帮助,无果,询问各路大神无果,最后求助官网论坛,反馈bug,发完帖子,帖子不见了。。。官网的帖子系统用着感觉真是糟糕透了。
。。。
三天后,想起来这事上官网看看吧!你别说,官网竟然真给了解释。满意给满分。
解决问题
是时候展现我真正的示例了,尴尬啊!提的bug竟不是bug!回家再闭关三天吧!
全部拿过来,方便大家围观
就是上边这个东西,帮助原文,大家可以点击上面链接详细查看,假如你看懂了就不用往下面看了。看不懂的话我把技术语言给你翻译成大白话!
大致就是这个意思,Autohotkey发送按键或者按下快捷键的时候,windows系统的菜单或激活窗口的菜单经常会莫名其妙的就激活了(话里话外意思就是windows的坑),为了填这个坑,Autohotkey搞了一个掩饰键,掩饰键的作用就是防止上述两个菜单激活,默认的掩饰键是Ctrl,嗷,为什么会莫名其妙的触发ctrl这真相大白了,下面怎么解决呢?
就是上边这个命令,官网是有备而来啊!官网说加这个命令,把默认的掩饰键改了就好了!同时呢,使用钩子效果更好!
最终代码:
#MenuMaskKey vk07 ; vk07 是未分配的.
#UseHook
!2::
SendInput,{m}
SendInput {down 7}{Enter 3}
return
当当 当 当,最终解决,感觉很棒!感谢官网的lexikos!本话题讨论更新地址放这里!智能热键网(中国第一AutoHotKey网站)
总结问题
打个比方,这个问题就相当于,windows挖下一个坑,ahk填了这个坑,可是在旁边又挖了一坑,只是这个坑不怎么碍事,可是这位网友刚好从旁边过,还是掉进去了,把旁边的坑填上,又会有一个新坑,如是循环也挺有意思!
网友评论