Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Autohotkey 自动热键有时会卡住_Autohotkey_Skype - Fatal编程技术网

Autohotkey 自动热键有时会卡住

Autohotkey 自动热键有时会卡住,autohotkey,skype,Autohotkey,Skype,史前: 不久前Skype已指定Ctrl+R热键来拨打新电话。无法禁用此设置 有时候我把浏览器窗口和Skype窗口混淆了,打电话给很多人而不是刷新浏览器窗口,因为专业原因,我需要经常刷新浏览器窗口 所以我制作了一个脚本来防止将Ctrl+R热键发送到Skype窗口,它工作得非常完美,但有时我不能将Ctrl+R发送到任何地方,不仅仅是Skype窗口 代码: 已编译二进制文件: 自动热键版本:1.1.14.03 #InstallKeybdHook SendMode, Input ; <---typ

史前:

不久前Skype已指定Ctrl+R热键来拨打新电话。无法禁用此设置

有时候我把浏览器窗口和Skype窗口混淆了,打电话给很多人而不是刷新浏览器窗口,因为专业原因,我需要经常刷新浏览器窗口

所以我制作了一个脚本来防止将Ctrl+R热键发送到Skype窗口,它工作得非常完美,但有时我不能将Ctrl+R发送到任何地方,不仅仅是Skype窗口

代码:

已编译二进制文件:


自动热键版本:1.1.14.03

#InstallKeybdHook
SendMode, Input ; <---typically more reliable than send play mode
~$*^r:: ;<--- ~ means pass command to machine * means fire regardless of other hotkey modifiers.

Send, {Blind}{Ctrl Down}
Send, {R}         
Send, {Ctrl Up}   
return
我使用一个叫做ACT的程序!为我的数据库。每当我编写热键脚本时,它都喜欢发送这样的命令,而您最初并没有这样的命令,这是错误的

如果这不起作用,您可以尝试添加:Sleep,每次发送之间的50会产生一个延迟,看看是否有效。如果是这样,您可以将每个延迟减少1/2,直到它再次停止工作


-islanq

您可以尝试以下方法

#InstallKeybdHook
SendMode, Input ; <---typically more reliable than send play mode
~$*^r:: ;<--- ~ means pass command to machine * means fire regardless of other hotkey modifiers.

Send, {Blind}{Ctrl Down}
Send, {R}         
Send, {Ctrl Up}   
return
我使用一个叫做ACT的程序!为我的数据库。每当我编写热键脚本时,它都喜欢发送这样的命令,而您最初并没有这样的命令,这是错误的

如果这不起作用,您可以尝试添加:Sleep,每次发送之间的50会产生一个延迟,看看是否有效。如果是这样,您可以将每个延迟减少1/2,直到它再次停止工作


-islanq

我有两个改进:

如果。。。尽可能使用上下文敏感热键。根据我的经验,由于各种原因,If更可靠。此外,您不必担心未受影响的窗口,例如,通过决定发送什么;事实上,我相信,如果if。。。情况不妙。 AHK_L有一个很酷的窗口选择器,名为AHK_exe,它允许您通过进程名而不是类/标题来标识窗口。同一程序的不同窗口可能具有不同的类名,例如最小化/最大化模式下的windows Media Player。可能Skype也有这种功能。这就是为什么对于更复杂的应用程序,通过进程名称进行标识通常是合理的。 将这些建议混合到一个解决方案中,我们得到以下简短代码:

; I hope it's skype.exe ;)
#IfWinActive ahk_exe skype.exe
^r::return

如果活动窗口不是Skype,我们将发送CTRL+R,而不是通过编程方式说如果活动窗口不是Skype,我们现在说如果窗口是Skype,我们什么也不做。

我有两个改进:

如果。。。尽可能使用上下文敏感热键。根据我的经验,由于各种原因,If更可靠。此外,您不必担心未受影响的窗口,例如,通过决定发送什么;事实上,我相信,如果if。。。情况不妙。 AHK_L有一个很酷的窗口选择器,名为AHK_exe,它允许您通过进程名而不是类/标题来标识窗口。同一程序的不同窗口可能具有不同的类名,例如最小化/最大化模式下的windows Media Player。可能Skype也有这种功能。这就是为什么对于更复杂的应用程序,通过进程名称进行标识通常是合理的。 将这些建议混合到一个解决方案中,我们得到以下简短代码:

; I hope it's skype.exe ;)
#IfWinActive ahk_exe skype.exe
^r::return

如果活动窗口不是Skype,我们将发送CTRL+R,而不是以编程方式说它是不是Skype,我们现在说如果窗口是Skype,我们什么也不做。

另一个使用Autohotkey的解决方案

#IfWinActive ahk_class tSkMainForm ;Skype
;prevent call
^r::
#IfWinActive

另一个使用自动热键的解决方案

#IfWinActive ahk_class tSkMainForm ;Skype
;prevent call
^r::
#IfWinActive

1有时是什么意思?是否存在某个模式/某个窗口出现故障?2请改为尝试以下代码:IfWinActive ahk_类TConversationForm ^r::return在^r之前插入换行符。3您是否知道F5通常也是刷新浏览器选项卡的热键?4没有问题,但是您是否考虑过为您的浏览器使用某种自动刷新扩展?谢谢您的回答。1.我没有发现任何依赖,只是停止工作。3.Ctrl+R是一种习惯。我试图切换到F5,但没有结果。4.不,我需要刷新页面只有当我要求浏览器的it2现在正在测试。非常感谢你。看起来一切都很好。在此期间,我将发布一个答案。1有时是什么意思?是否存在某个模式/某个窗口出现故障?2请改为尝试以下代码:IfWinActive ahk_类TConversationForm ^r::return在^r之前插入换行符。3您是否知道F5通常也是刷新浏览器选项卡的热键?4没有问题,但是您是否考虑过为您的浏览器使用某种自动刷新扩展?谢谢您的回答。1.我没有发现任何依赖,只是停止工作。3.Ctrl+R是一种习惯。我试图切换到F5,但没有结果。4.不,我需要刷新页面只有当我要求浏览器的it2现在正在测试。非常感谢你。看起来一切都很好。在此期间,我将发布一个答案。