2017-05-03 1 views
0

Je viens d'apprendre comment créer un menu contextuel pour le bureau, mais ce que je veux vraiment, c'est avoir seulement le menu contextuel pour un lien spécifique. Est-ce possible? Je n'ai pas encore compris comment. J'espérais spécifier le fichier au lieu d'une extension dans HKEY_CLASSES_ROOT, mais je n'ai pas réussi à le faire fonctionner. C'est ma tentative la plus récente.Comment ajouter un menu contextuel à un fichier spécifique

[HKEY_CLASSES_ROOT\Applications\My Link.lnk\Shell\Toggle] 
"Position"="Top" 
"Icon"="\"C:\\Program Files (x86)\\My Toggle\\My Toggle.Exe\"" 
@="Toggle" 

[HKEY_LOCAL_MACHINE\Software\Classes\My Link.lnk\shell\Toggle\command] 
@="\"C:\\Program Files (x86)\\My Toggle\\My Toggle.Exe\"" 
+0

Je voudrais que ça fonctionne comme. '' [HKEY_CLASSES_ROOT \ DesktopBackground \ Shell \ commutateur PowerSribe] "Position" = "Top" "Icon" = "\" C: \\ Program Files (x86) \\ Mon bascule \\ Mon bascule.Exe \ "" @ = "Toggle" [HKEY_CLASSES_ROOT \ DesktopBackground \ Commutateur Shell \ PowerSribe] @ = "\" C: \\ Program Files (x86) \\ Mon basculement \\ Mon Toggle.Exe \ "" ' –

Répondre

0

Si quelqu'un essaie de faire le même genre de chose. Ma meilleure solution était de créer une nouvelle extension de type raccourci appelée .lnky, et lui assigner le menu contextuel. À moins de manquer quelque chose, je n'ai pas réussi à trouver un moyen de créer un menu contextuel pour un seul fichier et pas une extension de fichier.

Ce guide a beaucoup aidé: Add menu item to windows context menu only for specific filetype

[HKEY_CLASSES_ROOT\.lnky] 
@="lnkyfile" 

[HKEY_CLASSES_ROOT\lnkyfile] 
@="Shortcut" 
"IsShortcut"="" 
"NeverShowExt"="" 
[HKEY_CLASSES_ROOT\lnkyfile\Shell\My Toggle] 
"Position"="Top" 
"Icon"="\"C:\\Program Files (x86)\\My program\\My program.Exe\"" 
@="My Action" 
[HKEY_CLASSES_ROOT\lnkyfile\Shell\My Toggle\command] 
@="\"C:\\Program Files (x86)\\My program\\My program.Exe\"" 

Le résultat de ceci est quand je raison tintement dans mon dossier lnky il a mon action à côté de mon icône du programme en haut du menu contextuel. Mon programme.Exe s'exécute lorsque je clique sur Mon action.

+0

Après En testant cela sur un second PC, j'ai réalisé que pour faire en sorte que le fichier fonctionne toujours comme un fichier de lien, je devais faire un pas de plus. Exporter HCR \ lnkfile. Ouvrez-le dans un éditeur de texte [remplacez tous] "lnkfile" par "lnkyfile", puis fusionnez le fichier reg dans le registre. Le résultat final a ressemblé. –

+0

'[HKEY_CLASSES_ROOT \ lnkyfile] @ = "raccourci" "IsShortcut"= "" "NeverShowExt"= "" "EditFlags"= dword: 00000001 "FriendlyTypeName"= "@ shell32.dll, -4153" [HKEY_CLASSES_ROOT \ lnkyfile \ CLSID] @ = "{00021401-0000-0000-C000-000000000046}" [HKEY_CLASSES_ROOT \ lnkyfile \ Shell] [HKEY_CLASSES_ROOT \ lnkyfile \ Shell \ PowerSribe Toggle] "Position" = "Top" "Icon" = "\" C: \\ Program Files (x86) \\ Mon programme \\ Mon programme.Exe \ "" @ = "Mon action" [HKEY_CLASSES_ROOT \ lnkyfile \ Shell \ PowerSribe Basculer \ command] @ = "\" C: \\ Program Files (x86) \\ Mon programme \\ Mon programme.Exe \ "" [HKEY_CLASSES_ROOT \ lnkyfile \ shellex] '' ' –

+0

[HKEY_CLASSES_ROOT \ lnkyfile \ shellex \ ContextMenuHandlers] [HKEY_CLASSES_ROOT \ lnkyfile \ shellex \ ContextMenuHandlers \ Compatibilité] @ =" {1d27f844-3a1f-4410-85ac -14651078412d} " [HKEY_CLASSES_ROOT \ lnkyfile \ shellex \ ContextMenuHandlers \ NvAppShExt] @ = "{A929C4CE-FD36-4270-B4F5-34ECAC5BD63C}" [HKEY_CLASSES_ROOT \ lnkyfile \ shellex \ ContextMenuHandlers \ OpenContainingFolderMenu] @ =" {37ea3a21-7493-4208-a011-7f9ea79ce9f5} "' ' –