Найти создателя горячей клавиши

Найти создателя горячей клавиши

Как найти источник горячей клавиши / ярлыка Windows? Я знаю, что клавиши, которые ее запускают, это Ctrl- Alt- Mи я знаю, что программа, которую она запускает, этоПроводник Виндоусуказал наМои документыпапка. Но как мне узнать местоположение создателя?

Я хочу найти «источник» и удалить из него горячую клавишу, чтобы можно было создать другую.

У нас достаточно защищенные машины, и я не смогу загрузить какое-либо программное обеспечение, поэтому мне нужно что-то родное для Windows, чтобы решить эту проблему.

У меня Windows 7 64-бит, если это имеет значение.

решение1

В vbs есть запрос wmi, который перечисляет все файлы ярлыков .lnk, но он не раскрывает свойство hotkey.
Comobject wscript.shell это делает.
Я предпочитаю PowerShell, следующий скрипт использует функцию, найденную наstackoverflow.com.
Он рекурсивно просматривает весь диск C, чтобы найти файлы .lnk и проверяет, содержит ли он горячую клавишу

## Enum-ShortcutHotkeys.ps1
# Function from Tim Lewis https://stackoverflow.com/a/21967566/6811411
function Get-Shortcut {
  param(
    $path = $null
  )
  $obj = New-Object -ComObject WScript.Shell
  if ($path -eq $null) {
    $pathUser = [System.Environment]::GetFolderPath('StartMenu')
    $pathCommon = $obj.SpecialFolders.Item('AllUsersStartMenu')
    $path = dir $pathUser, $pathCommon -Filter *.lnk -Recurse 
  }
  if ($path -is [string]) {$path = dir $path -Filter *.lnk}
  $path | ForEach-Object { 
    if ($_ -is [string]) {$_ = dir $_ -Filter *.lnk}
    if ($_) {
      $link = $obj.CreateShortcut($_.FullName)
      $info = @{}
      $info.Hotkey = $link.Hotkey
      $info.TargetPath = $link.TargetPath
      $info.LinkPath = $link.FullName
      $info.WorkingDirectory = $link.WorkingDirectory
      $info.Arguments = $link.Arguments
      $info.Target = try {Split-Path $info.TargetPath -Leaf } catch { 'n/a'}
      $info.Link = try { Split-Path $info.LinkPath -Leaf } catch { 'n/a'}
      $info.Description = $link.Description
      $info.WindowStyle = $link.WindowStyle
      $info.IconLocation = $link.IconLocation
      New-Object PSObject -Property $info
    }
  }
}
Get-ChildItem -path c:\ -filter *.lnk -rec -force -EA 0|
  ForEach-Object {
    get-shortcut $_.FullName|where Hotkey
  }

В этом примере выходных данных обнаружена горячая клавиша Acronis, о которой я не знал.

> .\Enum-ShortcutHotkeys.ps1

WorkingDirectory : C:\Program Files (x86)\Acronis\TrueImageHome\
Link             : Acronis System Report.lnk
TargetPath       : C:\Program Files (x86)\Acronis\TrueImageHome\SystemReport.exe
WindowStyle      : 1
Description      : Ermöglicht Ihnen, Informationen über Ihr System zu sammeln.
IconLocation     : ,1
Hotkey           : Ctrl+F7
Target           : SystemReport.exe
Arguments        :
LinkPath         : C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Acronis\True Image\Extras und
                   Werkzeuge\Acronis System Report.lnk

WorkingDirectory : C:\Program Files (x86)\Acronis\TrueImageHome\
Link             : Acronis System Report.lnk
TargetPath       : C:\Program Files (x86)\Acronis\TrueImageHome\SystemReport.exe
WindowStyle      : 1
Description      : Ermöglicht Ihnen, Informationen über Ihr System zu sammeln.
IconLocation     : ,1
Hotkey           : Ctrl+F7
Target           : SystemReport.exe
Arguments        :
LinkPath         : C:\Users\All Users\Microsoft\Windows\Start Menu\Programs\Acronis\True Image\Extras und
                   Werkzeuge\Acronis System Report.lnk

Связанный контент