AutoHotKey:如何禁用Skype热键并使键盘正常运行

托马斯·科里奥尔

Skype热键确实令人讨厌,因为无法从Skype本身禁用它们。最令人讨厌的是Ctrl+ R,它与您选择的任何联系人开始了Skype通话。这已经通过最近更换Ctrl+ Alt+ R

请参阅http://community.skype.com/t5/Windows-desktop-client/Disable-CTRL-R-on-windows/td-p/2877763

不幸的是,发生在我身上的是AltGr+R作为“è”字符的映射键(使用Microsoft keybord创建器)。因此,在我所有的应用程序中,我都可以使用美式键盘愉快地用法语书写,并始终使用AltGr+r表示“è”字符。现在,除了Skype中。

阅读上面的链接,我创建了一个AutoKey脚本,以禁用Skype的热键:

#IfWinActive, ahk_exe Skype.exe ; utilizes this script for Skype only
!^r:: ; replace [ctrl][alt][r] with nothing
#If     ; closes IfWinActive condition, needed if more code comes after this

但是,尽管这会禁用Skype热键,但会阻止在Skype讨论中正常输入“è”字符。很好,但不是最好,因为现在我的打字已在Skype中全部搞乱了。

我尝试了其他选择,但无济于事:

#IfWinActive, ahk_exe Skype.exe ; utilizes this script for Skype only
!^r:: 
Send è  
return
#If     ; closes IfWinActive condition, needed if more code comes after this

或者

#IfWinActive, ahk_exe Skype.exe ; utilizes this script for Skype only
!^r:: 
SendInput {Raw}è  
return
#If     ; closes IfWinActive condition, needed if more code comes after this

但是只要不严格禁用!^ r,它便会发起Skype呼叫。

任何对AutoHotKey和/或Skype有更多经验的人可以帮助我吗?

谢谢。

菲尔294

请注意

#IfWinActive, ...
!^r::
#If

没有有效停用热键:附加return关键字,因此为!^r::return否则,在按alt ctrl r之后,还将执行下面进一步的任何代码。

另外,如果您只想重新映射AltGr热键,则应<^>!r::按照文档中的建议将其用作触发器这样,自然alt+ctrl+r行为将得以保留,在这种情况下进行呼叫。


我无法完全重现您的问题。

#IfWinActive, ahk_exe Skype.exe
<^>!r::
send a
return 
#ifWinActive

对我来说效果很好,并且在Skype中不会呼叫我的活动联系人。AltGr被正确覆盖。但是,如果我更改send asend è,脚本将开始奇怪地运行。它仅在第一次使用时有效:此后,我必须Alt手动按下一次才能è再次发送。在我看来,这似乎是个虫子。

解决方法可能是

#IfWinActive, ahk_exe Skype.exe
<^>!r::
send è
keywait, alt
send {alt}
return 
#ifWinActive

或者

#IfWinActive, ahk_exe Skype.exe
<^>!r::
keywait, alt
send è
return 
#ifWinActive

但这仍然无法è在按住的同时发送多个altGr您必须AltGr在每次之后释放è

编辑-我找到了100%有效的解决方案:

#IfWinActive, ahk_exe Skype.exe
<^>!r::
SendUnicodeChar(0x00E8)
return 
#ifWinActive

; SOURCE for the following: http://www.autohotkey.com/board/topic/16404-inserting-unicode-special-characters/
SendUnicodeChar(charCode)
{
    VarSetCapacity(ki, 28 * 2, 0)
    EncodeInteger(&ki + 0, 1)
    EncodeInteger(&ki + 6, charCode)
    EncodeInteger(&ki + 8, 4)
    EncodeInteger(&ki +28, 1)
    EncodeInteger(&ki +34, charCode)
    EncodeInteger(&ki +36, 4|2)

    DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28)
}

EncodeInteger(ref, val)
{
    DllCall("ntdll\RtlFillMemoryUlong", "Uint", ref, "Uint", 4, "Uint", val)
}

与上面相同,但不是使用send èsend {ASC 0232},而是使用unicode格式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Windows 8.1中禁用“运行热键”?

来自分类Dev

如何禁用Ctrl +空格热键来切换键盘布局?

来自分类Dev

如何使用 AutoHotKey 中的热键关闭 SetTimer?

来自分类Dev

如何通过热键选择语言键盘?

来自分类Dev

如何使用键盘热键像右键单击鼠标一样使用powershell运行并选择使用powershell运行?

来自分类Dev

如何在Vim中调试无法正常运行的键盘映射?

来自分类Dev

如何禁用键盘?

来自分类Dev

如何禁用键盘?

来自分类Dev

如何禁用自动热键中的语法字符?

来自分类Dev

如何更改或禁用VMware Player的热键?

来自分类Dev

如何在Unity中禁用ALT热键?

来自分类Dev

如何禁用Skype广告(广告)?

来自分类Dev

如何使AutoHotKey在其他程序之前拦截热键?

来自分类Dev

Autohotkey:如何清除Windows分配的大多数Fnn热键?

来自分类Dev

如何使AutoHotKey在其他程序之前拦截热键?

来自分类Dev

Autohotkey-如何覆盖键盘状态

来自分类Dev

如何禁用键盘的数字小键盘?

来自分类Dev

如何禁用Macbook键盘背光

来自分类Dev

如何禁用特殊键盘键?

来自分类Dev

如何禁用Macbook键盘背光

来自分类Dev

如何禁用键盘上的键?

来自分类Dev

如何更改全局热键/键盘快捷键?

来自分类Dev

键盘热键/宏软件

来自分类Dev

应用程序运行时如何禁用手机键盘?

来自分类Dev

如何使用AutoHotkey禁用ctrl-n?

来自分类Dev

如何在OneNote中禁用或更改Windows + S热键

来自分类Dev

如何在Windows(XP)中禁用屏幕方向热键?

来自分类Dev

如何在Windows(XP)中禁用屏幕方向热键?

来自分类Dev

如何禁用所有默认热键和行为