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

时间:2009-06-10 16:58:01

标签: windows hotkeys

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

7 个答案:

答案 0 :(得分:11)

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

  

AutoIt最初是为PC设计的   “推出”情况可靠   自动化和配置数千个   电脑。随着时间的推移它已成为一个   强大的语言,支持   复杂的表达,用户功能,   循环和其他一些老练的东西   编程人员会期待。

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

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

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

While 1
    sleep(10)
WEnd

如果这不够直接,则AutoIt帮助文件和forums非常有帮助。更不用说(非常)很少的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

答案 1 :(得分:5)

每个进程键盘快捷键如 Ctrl + V 通常在资源(.rc)文件中定义,并通过Win32 API LoadAccelerators加载。< / p>

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

答案 2 :(得分: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

“#b”表示 Winkey + B

“运行,mailto:boss@mycompany.com”向我的老板发送一封黑色电子邮件。

#b:: Run, mailto:boss@mycompany.com

答案 3 :(得分:2)

您可以通过创建快捷方式在Windows中创建一个简单的热键,然后为其指定快捷键。我这样做是为了启动一些带参数的命令行应用程序。 以下链接说明了使用应用程序的快捷键来静音音量:Mute

只需在快捷方式属性中替换目标:和快捷键:您可以根据需要使用它。

答案 4 :(得分:1)

好的......最简单的方法,例如在桌面上,您可以通过右键单击图标&gt;来使用加速命令。属性&gt;快捷键;点击空白区域似乎没有任何反应,但这是当你分配你的“热键”我使用 Shift + 1 并且每当我结合 Shift + 1 Firefox打开。

答案 5 :(得分:1)

带有Windows的简单脚本,不需要第三方软件。只需保存为.vbs文件并双击

currentDirectory = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))

Set objShell = WScript.CreateObject("WScript.Shell")
Set lnk = objShell.CreateShortcut(currentDirectory  & "search.LNK") 
lnk.TargetPath = currentDirectory  & "search.bat"
lnk.Arguments = ""
lnk.Description = "Abiram's search"
lnk.HotKey = "SHIFT+CTRL+C"
lnk.WindowStyle = "7"
lnk.WorkingDirectory = currentDirectory
lnk.Save
'Clean up 
Set lnk = Nothing

更改lnk.TargetPath以包含要调用的exe文件或批处理文件。

答案 6 :(得分:0)

首先,欢迎来到Stack Overflow!

其次,这是一个程序式的程序。 Ctrl + C Ctrl + V 在不同程序中工作的唯一原因是因为有操作系统支持对于剪贴板和许多程序遵循使用 Ctrl + C Ctrl + V 的约定。在您自己的程序中,您可以随意绑定键!有关详细信息,我们需要有关您的计划的更多信息。

如果你想为Windows本身制作实际的热键,我不确定如何(也不是你能够)制作自己的热键。您可能希望查看AutoIt,这是一个免费程序,可以执行您可能想要使用热键的各种事情,例如自动点击菜单等。