如何找出哪些程序在 Windows 10 中注册了全局热键?

Nat*_*ley 42 hotkeys windows-10

我的媒体热键(播放、暂停、下一步等)被未知进程窃取。如何找到在 Windows 10 中注册到哪个程序的全局热键列表?有一些程序可以做到这一点,但它们只能在 Windows 7 上运行并在 Windows 8+ 上运行。

Jac*_*ite 27

热键和多媒体键可能会被硬件或驱动程序(不太可能)、正在运行的程序或系统设置覆盖。

这三个是不同的,需要不同的方法来检查和解决。

硬件

您的键盘可能有不同的模式,通常可以使用 FN 组合键进行选择。某些智能键盘可通过 Windows 实用程序进行配置。请参阅您的键盘文档。

运行程序

虽然这种方法有点残酷,但我建议启动任务管理器并终止除系统进程之外的所有进程,例如:svchost、lsass、csrss、smss、services、userinit、dwm、winlogon、explorer。

如果有帮助,请重新启动并尝试一一终止它们以查看哪个导致问题。您可以通过msconfig或 SysInternalsautoruns程序禁用违规进程的启动。

系统设置

按 Windows 开始按钮,键入“regedit”并浏览到 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer

删除指定的注册表项(“文件夹”)(AppKey如果存在)。

现在浏览到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey,做删除它。

定义按下多媒体键时启动哪个程序的子键(子文件夹)很少。

以下是 Windows 7 的默认设置,您的应该类似:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\15]
"Association"="mailto"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\16]
"Association"=".cda"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\17]
"ShellExecute"="::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\18]
"ShellExecute"="calc.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\7]
"Association"="http"
Run Code Online (Sandbox Code Playgroud)

要将键分配给您选择的程序,请删除相应注册表项下的所有值,然后创建一个名为的新字符串 (REG_SZ) 值ShellExecute和您选择的程序的完整路径作为值,例如c:\vlc\vlc.exe

如果没有您需要的号码的密钥(见下文),只需创建一个。

以下是已知多媒体键及其对应编号的列表 Appkey\

1   Back (Internet browser) 
2   Forward (Internet browser) 
3   Refresh (Internet browser)
4   Stop (Internet browser)
5   Search
6   Favourites 
7   Web Home
8   Mute volume 
15  Mail 
16  Media 
17  My Computer 
18  Calculator 
24  Mute microphone 
25  Lower microphone volume 
26  Raise microphone volume
27  Help 
28  Find 
29  New
30  Open
31  Close 
32  Save
33  Print
34  Undo
35  Redo
36  Copy 
37  Cut 
38  Paste
39  Reply
40  Forward (mail) 
41  Send
42  Spelling checker
43  Toggle dictation and command/control
44  Toggle microphone
45  Corrections 
Run Code Online (Sandbox Code Playgroud)

(上述列表复制自https://groups.google.com/forum/#!msg/microsoft.public.fr.windowsxp/zZolgM6PC4o/sRJv2NtrB-8J(法语))

重新启动后设置应该可以工作。

桌面快捷方式

可以将您需要的热键分配给 Windows 桌面、开始菜单、快速启动面板或固定到任务栏上的快捷方式。

搜索这些可能会很痛苦,相反,您可能希望将以下文本复制到一个新的文本文件中,将c:\第一行替换为您的用户主目录路径,例如c:\Users\jwhite\,保存在名称下Script.vbs并运行它。

Const rootdir = "c:\"

Set fso = CreateObject("Scripting.FileSystemObject")
Set wshell = CreateObject("WScript.Shell")

logname="test.txt"
Set logfile = fso.CreateTextFile(logname,True)
logfile.Write "Searching for shortcuts with hotkeys" & vbCrLf

recursedirs( fso.GetFolder(rootdir) )

logfile.Write "Done searching" & vbCrLf
logfile.Close

Sub recursedirs(dir)
    If trylistdir(dir) Then
        For Each subdir In dir.SubFolders
             recursedirs subdir
        Next

        For Each file In dir.Files
            extn = fso.GetExtensionName(file.Path)
            if LCase(extn) = "lnk" Then
               check(file.Path)
            end if
        Next
    End If
End Sub

Function trylistdir(dir)
  On Error Resume Next
  trylistdir = (dir.SubFolders.Count + dir.Files.Count >= 0)
End Function

Sub check(fname)

    Set lnk = wshell.CreateShortcut(fname)
    hk = lnk.Hotkey
    if (hk<>"") then
       logfile.Write fname & " : " & hk & vbCrLf
    end if

End Sub
Run Code Online (Sandbox Code Playgroud)

几分钟后,它应该test.txt在与脚本本身相同的文件夹中创建一个文件,其中包含以下内容:

Searching for shortcuts with hotkeys
C:\test\test01.lnk : Alt+Ctrl+Z
C:\test\test02.lnk : Alt+Ctrl+Shift+E
Done searching
Run Code Online (Sandbox Code Playgroud)

软件

AFAIK,Windows 热键资源管理器软件的工作方式是按下所有可能的热键,然后尝试拦截结果调用的任何内容。我相信从 Windows 8 及更高版本开始,不可能再以这种方式拦截热键,因此这种方法不再有效,因此可能没有这样的软件。

我相信索取软件推荐可能无论如何都不适合 SuperUser.com,相反,您可能想在专门用于此的网站上提出以下问题:https : //softwarerecs.stackexchange.com/questions/33669/tool-to-list-所有当前窗口热键


小智 9

Hotkey Detective 程序 ( https://github.com/ITachiLab/hotkey-Detective/releases ) 在撰写本文时正在运行。


wut*_*aer 7

我用过http://www.nirsoft.net/utils/hot_keys_list.html

好像 ctrl + shift + o 被屏蔽了

所以我打开这个工具,看到它确实被使用了,但看不到是哪个程序

所以我打开了任务管理器并按任务杀死了任务,并且总是在工具中点击刷新,直到我发现它是一些 amd...exe 可能是某种屏幕录像机