为Windows制作热键的最简单方法是什么?

12 windows hotkeys

例如,按下Ctrl+ V并将缓冲区内容插入窗口.我该如何创建自己的热键呢?抱歉,这是一个非常棒的问题.

Cop*_*pas 11

快速轻松地执行此操作的一种好方法是使用专注于宏编程的脚本语言.我最喜欢的是AutoIt,因为它在AutoIt帮助文件的剪辑中说...

AutoIt最初是为PC"推出"情况而设计的,可以可靠地自动化和配置数千台PC.随着时间的推移,它已成为一种强大的语言,支持复杂的表达式,用户函数,循环以及资深脚本编写者期望的所有其他内容.

在AutoIt中编写热键应用程序非常简单.例如,让我们说出于某些原因(模糊地提到),你希望Alt+ Q在特定情况下作为数字键盘7作出反应,这样你就不必跨越键盘了.这里有一些代码可以做到......

Func _num7()
    Send("{numpad7}")
EndFunc

HotKeySet("!{q}","_num7")

While 1
    sleep(10)
WEnd
Run Code Online (Sandbox Code Playgroud)

如果这不够直接,AutoIt帮助文件和论坛非常有帮助.更不用说(非常)很少的AutoIt开发人员可以在SO上使用,如果您最终遇到任何AutoIt特定问题.

在上面的示例中,假设您只希望在使用特定应用程序时激活热键,以免干扰其他热键.这段代码就可以实现.

; The comment character in AutoIt is ;
Local $inTargetProg = False

Func _num7()
    Send("{numpad7}")
EndFunc

While 1
    If WinActive("Target Application Window Title") and Not $inTargetProg Then
        HotKeySet("!{q}","_num7") ; binds Alt+Q to the _num7() function
        $inWC3 = True
    EndIf

    If Not WinActive("Target Application Window Title") and $inTargetProg Then
        HotKeySet("!{q}") ; UnBind the hotkey when not in use
        $inWC3 = False
    EndIf

    sleep(5)
WEnd
Run Code Online (Sandbox Code Playgroud)

  • 不错的exmaples!我认为最适合我的是什么.不管怎样,谢谢. (2认同)

sea*_*n e 5

Ctrl+ 这样的每进程键盘快捷键V通常在资源(.rc)文件中定义,并通过Win32 API LoadAccelerators加载.

使用Win32 API RegisterHotKey注册 Windows范围的键盘快捷键(热键).


小智 5

我一直在使用AutoHotkey工作一年中最好的部分.

我只是将以下文件保存在Windows Startup文件夹中.

keyboard_shortcuts.ahk

#SingleInstance force
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
Menu, Tray, Icon, Shell32.dll, 44

; Starting Directory for cmd.exe
EnvGet, HOMEDRIVE, HOMEDRIVE
EnvGet, HOMEPATH, HOMEPATH

#i:: Run, notepad
#f:: Run, firefox
#c:: Run, cmd /k, %HOMEDRIVE%%HOMEPATH%
#m:: Run, mailto:
#b:: Run, mailto:boss@mycompany.com
Run Code Online (Sandbox Code Playgroud)

"#b"表示Winkey+B

"Run,mailto:boss@mycompany.com"向我的老板发了一封黑色电子邮件.

#b:: Run, mailto:boss@mycompany.com
Run Code Online (Sandbox Code Playgroud)


sam*_*moz 0

首先,欢迎来到 Stack Overflow!

其次,这是一个逐个项目的事情。Ctrl+CCtrl+的唯一原因V是因为操作系统支持剪贴板,并且许多程序遵循使用Ctrl+CCtrl+的约定V。在您自己的程序中,您可以随意绑定按键!如需了解更多详情,我们需要有关您的计划的更多信息。

如果您想为 Windows 本身制作实际的热键,我不确定如何(也不知道您是否能够)制作自己的热键。您可能想研究AutoIt,这是一个免费程序,可以执行您可能想要使用热键的各种操作,例如自动单击菜单等。