Page 1 of 1

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

Posted: 10 Oct 2016, 03:46
by gongnl

Code: Select all

!q::^c

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

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

加一个 send 吧。
!q::Send ^c

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

Posted: 10 Oct 2016, 07:42
by gongnl
我想使用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

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

Posted: 10 Oct 2016, 20:47
by tmplinshi
我昨天测试是成功的,当时是开启了大写。

有两种解决方法:
  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
    	}
    }

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

Posted: 10 Oct 2016, 21:32
by gongnl
tmplinshi ,谢谢

我使用

Code: Select all

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

使用第2段代码测试成功,不解的是为什么要开启CapsLock后才能使alt+q映射成功?

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

Posted: 02 May 2017, 22:05
by gongnl
~Alt::
KeyWait, Alt
return

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

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