AHK模拟ctrl + alt + break

时间:2013-01-30 00:22:50

标签: remote-desktop autohotkey

我想用AHK来模拟 Ctrl + Alt + break

以下代码什么都不做。我还首先使用Num粘贴了密钥历史记录 - 然后实际按下了三重键组。当实际按键操作时,AHK键不起作用。两者生成的代码对我来说似乎是相同的,除了Break有d&你和AHK。但那应该不重要。我也介绍了延迟但这也行不通。

SetKeyDelay, 2,2
NumpadSub::
send {LCtrl Down}{LAlt Down}{vk03sc146}{LCtrl Up}{LAlt Up}
return  

我还尝试使用{CtrlBreak}和下面的内容在Win XP远程桌面上没有成功。 发送!^ {vk03sc146} 这段代码可以在我的win 7中找到。但是我需要远程进入Win XP。 请帮助。

6D  04A     d   1.33    Num -           
A2  01D i   d   0.00    Ctrl            
A4  038 i   d   0.02    Alt             
03  146 i   d   0.02    Break           
03  146 i   u   0.02    Break           
A2  01D i   u   0.02    Ctrl            
A4  038 i   u   0.02    Alt             
6D  04A     u   0.16    Num -           
74  03F     d   1.00    F5              
74  03F     u   0.09    F5              
74  03F     d   2.02    F5              
74  03F     u   0.13    F5              
74  03F     d   0.19    F5              
74  03F     u   0.11    F5              
A2  01D     d   1.31    Ctrl            
A4  038     d   0.00    Alt             
03  146     u   0.39    Break           
A2  01D     u   0.06    Ctrl            
A4  038     u   0.03    Alt             
74  03F     d   3.08    F5       

2 个答案:

答案 0 :(得分:3)

即使它在RDP之前启动,也可以从AHK捕获CapsLock密钥,它是RDP传递给其他键盘挂钩的唯一键。

这可以在本地计算机上完成。当您在本地计算机上而不是在远程计算机上执行此操作时,可以使用AHK获取MSTSC的窗口ID,并将恢复命令传递给窗口(不发送密钥,这非常不可靠)

;Get MSTSC window (this may have to be "ahk_class TSSHELLWND" for systems other than Win7)
If WinActive("ahk_class TscShellContainerClass") {
    WinGet, active_id, ID, A
    PostMessage, 0x112, 0xF120,,, ahk_id %active_id%   ; 0x112 = WM_SYSCOMMAND, 0xF120 = SC_RESTORE
}

以上命令将使MSTSC从全屏中断。

这里可以看到一个完整的例子(http://code.ecomerc.com/Articles/RotateCube/),它用于从全屏中断MSTSC并旋转Dexpot的立方体功能(一个3d窗口管理器)

答案 1 :(得分:0)

如果RDP客户端的键盘挂钩被激活,那么除非在RDP客户端之后启动脚本,否则没有auhotkey热键可以工作。

这是编写该行代码的更好方法; ^!歇