Stránka 1 z 1

výpis user-defined kláves.zkratek (XP)

Napsal: 13 dub 2011 09:44
od petrofff
Potřeboval bych zjistit seznam:
použitá klávesová kombinace (Ctrl + Alt|Shift + ?) <=> zástupce (Cíl/cmd line)

--- Doplnění předchozího příspěvku (13 Dub 2011 20:10) ---

Nakonec jsem to vyřešil VBS skriptem => vypíše z plochy ty zástupce, které mají nadefinovanou kláv.zkratku.

[HotkeysOnDesktop.vbs]

Kód: Vybrat vše

Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject ("Scripting.FileSystemObject")
Set DesktopFolder = objFSO.GetFolder(WshShell.SpecialFolders("Desktop"))
Set files = DesktopFolder.Files
seznam = ""
For Each f In files
   Set soubor = objFSO.GetFile(f)
   If "lnk" = LCase(objFSO.GetExtensionName(soubor.Path)) Then
      Set zastupce = WshShell.CreateShortcut(soubor.Path)
      hotkey = zastupce.HotKey
      If hotkey > "" Then seznam = seznam & hotkey & Chr(9) & objFSO.GetBaseName(soubor.Path) & vbCrLf
   End If
Next
MsgBox (seznam)


Re: výpis user-defined kláves.zkratek (XP)

Napsal: 14 dub 2011 09:26
od petrofff
Tak snadné to zase není:
  1. Chybí zkratky z Plochy u programů typu AllUsers
  2. Nezahrnuje oblast START menu
  3. Je třeba prohledávat i podsložky


--- Doplnění předchozího příspěvku (14 Dub 2011 15:49) ---

Snad už nic nevynechá:
[UserDefinedHotkeys.vbs]

Kód: Vybrat vše

Sub ZpracujSlozku(folder)
Dim f,shortcut,hotkey
For Each f In folder.Files
   If "lnk" = LCase(objFSO.GetExtensionName(f.Path)) Then
      Set shortcut = WshShell.CreateShortcut(f.Path)
      hotkey = shortcut.HotKey
      If hotkey > "" Then seznam = seznam & hotkey & Chr(9) & objFSO.GetBaseName(f.Path) & vbCrLf
   End If
Next
For Each f In folder.SubFolders
   ZpracujSlozku f
Next
End Sub
'--------------------------------------------------------------------------
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject ("Scripting.FileSystemObject")
seznam = ""
ZpracujSlozku objFSO.GetFolder(WshShell.SpecialFolders("Desktop"))
ZpracujSlozku objFSO.GetFolder(WshShell.SpecialFolders("AllUsersDesktop"))
ZpracujSlozku objFSO.GetFolder(WshShell.SpecialFolders("StartMenu"))
ZpracujSlozku objFSO.GetFolder(WshShell.SpecialFolders("AllUsersStartMenu"))
MsgBox (seznam)