【发布时间】:2026-01-21 09:10:01
【问题描述】:
我正在使用校园范围内的计算机访问我办公室中的 Windows 7 桌面计算机,但在交换 CapsLock 和 Ctrl 密钥时遇到问题。
问题是,我在办公室的机器上只有管理员权限,我通过添加适当的“扫描码映射”编辑注册表(regedit)交换了CapsLock 和Ctrl。
但是,这对任何远程访问会话都没有帮助,因为本地计算机上的 CapsLock 保持原样。
我求助于 AHK,但在两台机器上运行的脚本中设置 CapsLock::LControl 并不能解决问题。通过 AHK 指定键交换后,按 CapsLock 确实会向 RDP 会话发送 Ctrl 键击。但是,在本地机器上,“CapsLock”的灯也应该打开(或关闭)!这表明,当 AHK 将 CapsLock 的印刷机转换为 Ctrl 时,本地机器将其视为 CapsLock 的原始印刷机。此外,多次按Ctrl 会使AHK 感到困惑并最终终止进程。
我也尝试在本地机器上运行的脚本中设置如下,但是没有用。
SetTitleMatchMode 2
#IfWinActive, Remote Desktop
SetCapsLockState, off
#IfWinActive
; or
#IfWinActive, ahk_class TscShellContainerClass
SetCapsLockState, off
#IfWinActive
当我在本地计算机上没有管理员权限时,我应该怎么做才能在远程访问的计算机上一致地指定 CapsLock 和 Ctrl 之间的密钥交换?在我自己的笔记本电脑上,我还通过注册表交换了CapsLock 和Ctrl,在远程访问会话中交换这些密钥没有问题。
一切顺利,
-临丰
【问题讨论】:
-
我尝试将以下行插入本地计算机上运行的 AHK 脚本,但
Capslock键仍然有效。SetCapsLockState, AlwaysOff -
@wOxxOm,我还添加了钩子,将以下行放在 AHK 脚本的开头。
#InstallKeybdHook;但是,这仍然没有帮助。CapsLock键仍然有效。
标签: windows windows-7 keyboard-shortcuts autohotkey remote-desktop