什么';为windows制作热键的最简单方法是什么?

什么';为windows制作热键的最简单方法是什么?,windows,hotkeys,Windows,Hotkeys,例如,按Ctrl+V并将缓冲区内容插入窗口。我怎样才能创建自己的热键呢?很抱歉提出这个问题。首先,欢迎来到堆栈溢出 第二,这是一个程序一个程序的事情。Ctrl+C或Ctrl+V在不同程序中工作的唯一原因是操作系统支持剪贴板,并且许多程序遵循使用Ctrl+C或Ctrl+V的惯例。在您自己的程序中,您可以随意绑定键!有关更多详细信息,我们需要有关您的计划的更多信息 如果您想为Windows本身制作实际的热键,我不知道如何(也不知道您是否能够)制作自己的热键。您可能想了解一下,这是一个免费程序,可以执

例如,按Ctrl+V并将缓冲区内容插入窗口。我怎样才能创建自己的热键呢?很抱歉提出这个问题。

首先,欢迎来到堆栈溢出

第二,这是一个程序一个程序的事情。Ctrl+C或Ctrl+V在不同程序中工作的唯一原因是操作系统支持剪贴板,并且许多程序遵循使用Ctrl+C或Ctrl+V的惯例。在您自己的程序中,您可以随意绑定键!有关更多详细信息,我们需要有关您的计划的更多信息


如果您想为Windows本身制作实际的热键,我不知道如何(也不知道您是否能够)制作自己的热键。您可能想了解一下,这是一个免费程序,可以执行您可能希望使用热键执行的所有操作,例如自动单击菜单等。

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


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

一种快速简便的方法是使用一种专注于宏编程的脚本语言。我最喜欢的是AutoIt帮助文件中的一个剪辑中所说的

AutoIt最初是为PC设计的 “推出”情况以确保可靠 自动化和配置数千个 随着时间的推移,它已成为 支持 复杂表达式、用户函数、, 循环和其他所有需要的东西 编剧们会期待的

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

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

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

While 1
    sleep(10)
WEnd
如果这还不够直截了当,请查看AutoIt帮助文件,这非常有帮助。更不用说有(很少)几个AutoIt开发人员在上可用,所以如果您最终遇到任何特定于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

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

只需将快捷方式属性中的Target:和Shortcut Key:替换为您所需的任何内容。

我在工作中使用了一年的大部分时间

我只是将以下文件保存在我的Windows启动文件夹中

键盘快捷键。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”表示温基+b

“运行,邮寄至:boss@mycompany.com“给我的老板发封黑色邮件

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

好的…最简单的方法,例如在桌面上,右键单击图标>属性>快捷键,即可使用加速命令;单击空白处,看起来什么都没有发生,但这是当您分配“热键”时,我使用了Shift+1,每当我组合Shift+1 Firefox打开时。

使用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文件或批处理文件。

这不是一个无意义的问题,但我们需要更多详细信息。您是否要求自己使用,例如,分配一个热键来启动firefox?或者对于您正在编写的windows应用程序。这取决于您想用热键执行的操作。例如,您是否有启动程序的热键?除此之外,我认为您需要一个定制的程序来为您执行热键“注册”。您给出的示例中,Ctrl+V不是热键,而是命令加速器。热键通常指的是全局注册的键盘快捷键,而命令加速器是每个进程的键盘快捷键。好问题,我确信我曾经有过一个+谢谢!我需要的结果是:你运行程序,每当你使用新的热键时(例如,你在键盘或其他任何地方写东西),程序就会执行为热键规定的内容。那么你想要全局热键。你想在Win32 API中使用RegisterHotKey,正如sean e在下面所说的。太棒了!希望你喜欢!是的,它确实摇滚!这里有一个指向AutoIt函数热键集的链接:@Copas非常感谢您的回答。现在我可以开始为dota编写热键程序了:)是的,它工作得很好,但我真的认为这是一项肮脏的工作,就像使用死循环来保持程序运行,而不是使用服务或钩子来完成它……有更好的解决方案吗?非常感谢。我们可以用Ctrl、Alt键做同样的操作吗?这既聪明又简单。基本上,您是在为批处理文件创建快捷方式文件,并为其指定热键。