在ie10中把alt+q 键映射为 复制键ctrl+c 不成功,不知什么原因?请求高手指点,谢谢 Topic is solved

遇到了问题?请先进行搜索(中文和英文),然后在此提问
gongnl
Posts: 72
Joined: 05 Jan 2015, 03:57
Location: /gongnltmp/

在ie10中把alt+q 键映射为 复制键ctrl+c 不成功,不知什么原因?请求高手指点,谢谢

Post by gongnl » 10 Oct 2016, 03:46

Code: Select all

!q::^c
tmplinshi
Posts: 1261
Joined: 01 Oct 2013, 14:57

Re: 在ie10中把alt+q 键映射为 复制键ctrl+c 不成功,不知什么原因?请求高手指点,谢谢

Post by tmplinshi » 10 Oct 2016, 07:09

应该是因为窗口有菜单造成的,当按下 Alt 键时菜单会出现下划线。测试了下在记事本窗口也一样。

加一个 send 吧。
!q::Send ^c
gongnl
Posts: 72
Joined: 05 Jan 2015, 03:57
Location: /gongnltmp/

Re: 在ie10中把alt+q 键映射为 复制键ctrl+c 不成功,不知什么原因?请求高手指点,谢谢

Post by gongnl » 10 Oct 2016, 07:42

我想使用alt+q热键映射为复制键ctrl+c,在其他应用程序中都正常可用,但在ie浏览器中无效,使用!q::send ^c 也一样不能复制。

Code: Select all

$!q::
clipboard=
send ^c
ClipWait, 2
clpc :=SubStr(clipboard,1,30)  
ToolTip, Copy %clpc%
sleep,1000
ToolTip
return
tmplinshi
Posts: 1261
Joined: 01 Oct 2013, 14:57

Re: 在ie10中把alt+q 键映射为 复制键ctrl+c 不成功,不知什么原因?请求高手指点,谢谢  Topic is solved

Post by tmplinshi » 10 Oct 2016, 20:47

我昨天测试是成功的,当时是开启了大写。

有两种解决方法:
  1. 先等待 Alt 键松开

    Code: Select all

    KeyWait Alt
    Send ^c
  2. 先开启大写

    Code: Select all

    SendCtrlC() {
    	; 如果没开启大写则开启
    	if !state := GetKeyState("Capslock", "T") {
    		SetCapsLockState, On
    	}
    
    	Send ^c
    
    	; 如果复制前是小写,则恢复小写
    	if !state {
    		SetCapsLockState, Off
    	}
    }
gongnl
Posts: 72
Joined: 05 Jan 2015, 03:57
Location: /gongnltmp/

Re: 在ie10中把alt+q 键映射为 复制键ctrl+c 不成功,不知什么原因?请求高手指点,谢谢

Post by gongnl » 10 Oct 2016, 21:32

tmplinshi ,谢谢

我使用

Code: Select all

#IfWinActive, ahk_class IEFrame
!q::
 KeyWait Alt
 Send ^c
 return
#IfWinActive
测试不成功

使用第2段代码测试成功,不解的是为什么要开启CapsLock后才能使alt+q映射成功?
gongnl
Posts: 72
Joined: 05 Jan 2015, 03:57
Location: /gongnltmp/

Re: 在ie10中把alt+q 键映射为 复制键ctrl+c 不成功,不知什么原因?请求高手指点,谢谢

Post by gongnl » 02 May 2017, 22:05

~Alt::
KeyWait, Alt
return

~Alt Up::
Send, {Alt Up}
return

https://autohotkey.com/boards/viewtopic ... ie#p144932
Post Reply

Return to “请求帮助”