PDA

View Full Version : Menu contestuali e menu "apri con"


il_nick
26-04-2016, 12:11
Ciao a tutti, come da oggetto thread vorrei poter modificare le voci del menu contestuale di Windows 7. In particolare mi servirebbero 3 funzionalità:

1. Modificare il menu contestuale che appare facendo click col destro sul desktop
2. Modificare il menu contestuale che appare facendo click col destro su un qualsiasi file
3. Abilitare la voce "Apri con" che dovrebbe apparire facendo click col destro su un qualsiasi file.

Come è noto esistono diversi programmi che hanno questo intento, ma trovarne uno gratuito e soprattutto che inserisca voci in italiano e non in inglese non è facile. Chiedo pertanto se, come credo sia possibile, si possa agire direttamente nell'editor del registro di sistema, in modo da eliminare/abilitare le chiavi relative a questo scopo. Di guide ne ho lette diverse ma non ho trovato ancora nessuna esaustiva che permetta di compiere appieno le operazioni che ho elencato. Qualcuno sa darmi una mano?

x_Master_x
26-04-2016, 15:11
1) La chiave è questa:
HKEY_CLASSES_ROOT\Directory\Background\shell
2) La chiave è questa:
HKEY_CLASSES_ROOT\*\shell
3) Non ho capito, la voce "Apri con" è sempre abilitata anche per le estensioni sconosciute.
HKEY_CLASSES_ROOT\Unknown\shell

Trovi la procedura completa a questo indirizzo:
Creating Shortcut Menu Handlers (https://msdn.microsoft.com/en-us/library/windows/desktop/cc144171(v=vs.85).aspx)

Chiaramente ignora ogni riferimento alla interfaccia COM ma segui solamente le varie procedure di creazioni delle chiavi-sottochiavi.

Unax
26-04-2016, 16:12
se dici che voci specifiche vuoi aggiungere o modificare magari qualcuno ti aiuta

ad esempio l'utility della nirsoft aggiunge questa voce al menu contestuale dei file

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\HashMyFiles]

[HKEY_CLASSES_ROOT\*\shell\HashMyFiles\command]
@="\"C:\\Program Files\\hashmyfiles-x64\\HashMyFiles.exe\" /file \"%1\""

e delle cartelle

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\HashMyFiles]

[HKEY_CLASSES_ROOT\Directory\shell\HashMyFiles\command]
@="\"C:\\Program Files\\hashmyfiles-x64\\HashMyFiles.exe\" /file \"%1\""

nei sistemi recenti è possibile anche aggiungere una icona

Eress
26-04-2016, 16:40
Da anni uso l'ottimo Ultimate Windows Context Menu Customizer, che come da titolo, offre molte opzioni di creazione e personalizzazione dei menu contestuali.

il_nick
27-04-2016, 11:16
1) La chiave è questa:
HKEY_CLASSES_ROOT\Directory\Background\shell
2) La chiave è questa:
HKEY_CLASSES_ROOT\*\shell

Ho trovato intuitivamente alcune chiavi sotto la voce shellex anziché shell, ma non trovo esatta corrispondenza con le voci che poi vedo facendo click col destro. Prendiamo ad esempio il secondo punto, quello relativo al click col destro su un qualsiasi file, allego l'immagine del menu con le frecce rosse sulle voci che voglio eliminare e la relativa immagine del reg ed:

http://s32.postimg.org/5mcwwh4xt/menu_contestuale.jpg (http://postimg.org/image/5mcwwh4xt/) http://s32.postimg.org/3k8r78fgh/reg_ed.jpg (http://postimg.org/image/3k8r78fgh/)

3) Non ho capito, la voce "Apri con" è sempre abilitata anche per le estensioni sconosciute.
HKEY_CLASSES_ROOT\Unknown\shell Sarà, ma a me non compare, come puoi notare nelle voci dell'immagine sopra allegata..

Da anni uso l'ottimo Ultimate Windows Context Menu Customizer, che come da titolo, offre molte opzioni di creazione e personalizzazione dei menu contestuali. Le voci che aggiunge compariranno poi in italiano o in inglese?

x_Master_x
27-04-2016, 14:14
La chiave "Unknown" non c'è perché la cerchi nel percorso sbagliato. Senza vedere i dettagli non ti posso dire quale chiave corrisponde a chi. Alcuni programmi hanno nelle impostazioni la possibilità di aggiungere/rimuovere la voce nel menu contestuale vedi Revo Uninstaller e l'entry "Show commands in Windows context menu" oppure più semplicemente la voce potrebbe non essere presente nel registro perché registrata tramite DLL/COM.

Un metodo semplice che puoi usare è fare una copia di backup della chiave ed eliminarla totalmente, in questo modo puoi capire se la voce è presente nel registro oppure no. Oppure alcune utility che posso esserti utili sono ShellMenuView (http://www.nirsoft.net/utils/shell_menu_view.html) e ShellExView (http://www.nirsoft.net/utils/shexview.html)

il_nick
27-04-2016, 14:21
Non mi sono spiegato bene io forse, la chiave Unknow la trovo, quello che non trovo è la voce "apri con" che, come hai detto anche tu, dovrebbe essere abilitata per default.. una volta dentro la chiave di registro come la devo impostare, cosa devo fare esattamente affinché mi faccia comparire sempre (anche per le estensioni conosciute) "apri con" cliccando col destro?

x_Master_x
27-04-2016, 15:36
Era abilitata di default, questo documento:
"Open With" Command Missing from the Context Menu (https://support.microsoft.com/en-us/kb/218805)

When you right-click an unknown file type, the Open With command may be missing from the context menu that appears

Mi ha tratto in inganno, era previsto come default nelle precedenti versioni di Windows. Comunque si può trarre rimedio con questo .reg che ho appena scritto:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Unknown\shell\OpenWith]
"MUIVerb"="Apri con"
"SubCommands"="notepad;paint"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad]
@="Blocco Note"
"icon"="notepad.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad\command]
@="notepad.exe \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\paint]
@="Paint"
"icon"="mspaint.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\paint\command]
@="mspaint.exe \"%1\""


Risultato:
http://i67.tinypic.com/mmbjuu.png

Puoi modificarlo a tuo piacere, aggiungere altri programmi etc. su come fare c'è sempre il link che ho scritto prima.

Unax
27-04-2016, 15:52
io ho la voce apri con se faccio tasto destro su un file con estensione non conosciuta anche se non ho la chiave HKEY_CLASSES_ROOT\Unknown\

https://snag.gy/NEP2TY.jpg

ma la chiave non dovrebbe essere questa?

HKEY_CLASSES_ROOT\*\ShellEx\ContextMenuHandlers\Open With

poi per eliminare le voci dal menu contestuale alcuni programmi hanno nelle opzioni la possibilità di attivare o meno tale caratteristica

altre voci possono essere disattivate con i programmi della nirsoft citati da X_M_X con il pregio di poterle riattivare

x_Master_x
27-04-2016, 15:57
No, con l'asterisco sono tutti i file conosciuti. Con "Apri con" intendeva il menu a tendina che hai quando clicchi su un qualsivoglia file conosciuto tipo l'immagine del mio post e quello non appare per i file non conosciuti aka non registrati. Come dicevo in versioni di Windows precedenti invece sì.

il_nick
27-04-2016, 15:59
Grazie per il tuo trick, ho letto il link ma non mi è sembrato molto esaustivo; quanto al .reg, tu hai inserito giustamente l'editor di testo e il paint, ma se volessi semplicemente abilitare l'apri con e poi sia lui a chiedermi di trovare un elenco di programmi attraverso un path come dovrei fare?

alcune utility che posso esserti utili sono ShellMenuView (http://www.nirsoft.net/utils/shell_menu_view.html) e ShellExView (http://www.nirsoft.net/utils/shexview.html)
Inseriscono voci in italiano o in inglese nel menu contestuale?

x_Master_x
27-04-2016, 16:12
Ho provato ad inserire l'handlers di "Apri con" all'interno della chiave "Unknown" ma il sistema l'ha ignorato, se ti dovesse servire l'apertura con un software diverso da quelli presenti nell'elenco semplicemente apri il file cliccandoci due volte sopra :D
I due programmi che ti ho messo sono utili per disabilitare le voci del menu contestuale cioè quello che chiedevi prima nell'eventualità non fossero presenti all'interno del registro.

il_nick
28-04-2016, 13:33
Ho provato ad inserire l'handlers di "Apri con" all'interno della chiave "Unknown" ma il sistema l'ha ignorato, se ti dovesse servire l'apertura con un software diverso da quelli presenti nell'elenco semplicemente apri il file cliccandoci due volte sopra Sì ma quello va bene per le estensioni sconosciute, a me serviva appunto per quelle conosciute, era comodo averlo disponibile, non capiscono perché su (o da) Windows 7 lo abbiano disabilitato...

x_Master_x
28-04-2016, 14:32
Ma per le estensioni conosciute ( es. txt per capirci ) il menu "Apri con" appare sempre a differenza di quello sconosciute che appunto è stato rimosso ed in quel caso puoi usare il .reg

il_nick
28-04-2016, 14:37
Eh no è proprio questo il punto, a me la voce "apri con" se faccio col dx su un file con estensione conosciuta non compare! L'immagine che ho allegato lo dimostra.

x_Master_x
28-04-2016, 14:45
Dall'immagine non si capisce se stai cliccando su un file conosciuto oppure no :D
E' un problema del tuo registro perché dovrebbe apparire. Vai alla chiave:
HKEY_CLASSES_ROOT\*
Fai una copia di backup della chiave ed eliminala. Aggiungi questa chiave al registro, è presa da una VM pulita

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*]
"ContentViewModeLayoutPatternForBrowse"="delta"
"ContentViewModeForBrowse"="prop:~System.ItemNameDisplay;System.ItemTypeText;~System.LayoutPattern.PlaceHolder;~System.LayoutPattern.PlaceHolder;System.DateModified;System.Size"
"ContentViewModeLayoutPatternForSearch"="delta"
"ContentViewModeForSearch"="prop:~System.ItemNameDisplay;~System.ItemFolderPathDisplay;~System.LayoutPattern.PlaceHolder;System.ItemTypeText;System.DateModified;System.Size"
"AlwaysShowExt"=""
"PreviewDetails"="prop:System.DateModified;System.Size;System.DateCreated;*System.OfflineAvailability;*System.OfflineStatus;*System.SharedWith"
"PreviewTitle"="prop:System.ItemNameDisplay;System.ItemTypeText"
"FullDetails"="prop:System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemTypeText;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;*System.OfflineAvailability;*System.OfflineStatus;*System.SharedWith;*System.FileOwner;*System.ComputerName"
"TileInfo"="prop:System.ItemTypeText;System.Size;System.DateModified"
"ExtendedTileInfo"="prop:System.ItemTypeText;System.Size;System.DateModified;System.OfflineAvailability"
"InfoTip"="prop:System.ItemTypeText;System.Size;System.DateModified"
"QuickTip"="prop:System.ItemTypeText;System.Size;System.DateModified"
"ConflictPrompt"="prop:System.ItemTypeText;System.Size;System.DateModified;System.DateCreated"
"SetDefaultsFor"="prop:System.Author;System.Document.DateCreated"
"NoStaticDefaultVerb"=""
"NoRecentDocs"=""

[HKEY_CLASSES_ROOT\*\OpenWithList]

[HKEY_CLASSES_ROOT\*\OpenWithList\Excel.exe]

[HKEY_CLASSES_ROOT\*\OpenWithList\IExplore.exe]

[HKEY_CLASSES_ROOT\*\OpenWithList\MSPaint.exe]
@=""

[HKEY_CLASSES_ROOT\*\OpenWithList\notepad.exe]
@=""

[HKEY_CLASSES_ROOT\*\OpenWithList\Winword.exe]

[HKEY_CLASSES_ROOT\*\OpenWithList\WordPad.exe]
@=""

[HKEY_CLASSES_ROOT\*\shell]

[HKEY_CLASSES_ROOT\*\shell\removeproperties]
"ProgrammaticAccessOnly"="Apartment"

[HKEY_CLASSES_ROOT\*\shell\removeproperties\DropTarget]
"CLSID"="{09a28848-0e97-4cef-b950-cea037161155}"

[HKEY_CLASSES_ROOT\*\shellex]

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers]

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\BriefcaseMenu]
@="{85BBD920-42A0-1069-A2E4-08002B30309D}"

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Open With]
@="{09799AFB-AD67-11d1-ABCD-00C04FC30936}"

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Open With EncryptionMenu]
@="{A470F8CF-A1E8-4f65-8335-227475AA5C46}"

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Sharing]
@="{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}"

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\{90AA3A4E-1CBA-4233-B8BB-535773D48449}]
@="Taskband Pin"

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\{a2a9545d-a0c2-42b4-9708-a0b2badd77c8}]
@="Start Menu Pin"

[HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers]

[HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers\BriefcasePage]
@="{85BBD920-42A0-1069-A2E4-08002B30309D}"

[HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers\CryptoSignMenu]
@="{7444C719-39BF-11D1-8CD9-00C04FC29D45}"

[HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers\{1f2e5c40-9550-11ce-99d2-00aa006e086c}]

[HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers\{3EA48300-8CF6-101B-84FB-666CCB9BCD32}]
@="OLE DocFile Property Page"

[HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers\{883373C3-BF89-11D1-BE35-080036B11A03}]
@="Summary Properties Page"


A questo punto "Apri con" per le estensioni conosciute dovrebbe ritornare, disconnetti-riavvia il PC.

il_nick
28-04-2016, 15:22
E' un problema del tuo registro perché dovrebbe apparire. Vai alla chiave:
HKEY_CLASSES_ROOT\*
Fai una copia di backup della chiave ed eliminala. Aggiungi questa chiave al registro, è presa da una VM pulita

A questo punto "Apri con" per le estensioni conosciute dovrebbe ritornare, disconnetti-riavvia il PC. Perfetto grazie, ha funzionato anche senza riavvio, mi chiedo a questo punto cosa e come mi abbia danneggiato quella chiave del registro..


I due programmi che ti ho messo sono utili per disabilitare le voci del menu contestuale cioè quello che chiedevi prima nell'eventualità non fossero presenti all'interno del registro. Ho provato a darci un'occhiata e a disabilitare una voce ma non mi pare che funga..

il_nick
29-04-2016, 01:26
Questa è bella: vorrei capire come mai ora se faccio click col destro su una cartella mi appare un menu (tra cui la scansione con l'antivirus) e se invece lo faccio su un file mi appare tutt'un altro menu?? :eek:

il_nick
29-04-2016, 12:07
Help me please

x_Master_x
02-05-2016, 13:06
Mi sono dimenticato della discussione :D
E' ovvio che ti ritrovi due menu diversi perché hai sostituito il tuo menù "personalizzato" dei file con uno "standard" senza programmi di terze parti, mentre non abbiamo toccato quello delle directory. Se vuoi il menu che avevi prima hai due strade:
1) Ripristinare la copia di backup che avevi fatto prima di aggiungere il mio .reg ma c'è il concreto rischio che "Apri con" si corrompa nuovamente
2) Aggiungere manualmente le chiavi mancanti nel registro prendendo come base il .reg di backup oppure se i programmi hanno una opzione per il context menu disabilitarla-abilitarla in modo che scrivano nuovamente la chiave

Purtroppo la situazione di partenza non dipende da me ma chissà quale software ha corrotto la chiave HKEY_CLASSES_ROOT\* ed il menù "Apri con"

il_nick
02-05-2016, 20:57
Ok mi daresti il .reg pulito del menu contestuale delle cartelle? Almeno appiano come per il menu dei file..

x_Master_x
03-05-2016, 09:13
Come preferisci. Fai sempre una copia di backup prima di eliminare la chiave.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory]
"AlwaysShowExt"=""
@="File Folder"
"EditFlags"=hex:d2,01,00,00
"FriendlyTypeName"="@shell32.dll,-10152"
"FullDetails"="prop:System.PropGroup.Description;System.DateCreated;System.FileCount;System.TotalFileSize"
"InfoTip"="prop:System.Comment;System.DateCreated"
"NoRecentDocs"=""
"PreviewDetails"="prop:System.DateModified;*System.SharedWith;*System.OfflineAvailability;*System.OfflineStatus"
"PreviewTitle"="prop:System.ItemNameDisplay;System.ItemTypeText"

[HKEY_CLASSES_ROOT\Directory\Background]

[HKEY_CLASSES_ROOT\Directory\Background\shell]

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd]
@="@shell32.dll,-8506"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shellex]

[HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers]

[HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\Gadgets]
@="{6B9228DA-9C15-419e-856C-19E768A13BDC}"

[HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\New]
@="{D969A300-E7FF-11d0-A93B-00A0C90F2719}"

[HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\Sharing]
@="{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}"

[HKEY_CLASSES_ROOT\Directory\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,33,00,00,00

[HKEY_CLASSES_ROOT\Directory\shell]
@="none"

[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="@shell32.dll,-8506"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\shell\find]
"LegacyDisable"=""
"SuppressionPolicy"=dword:00000080

[HKEY_CLASSES_ROOT\Directory\shell\find\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,45,00,78,00,70,00,6c,00,6f,00,72,00,65,00,72,00,2e,00,65,00,78,00,\
65,00,00,00
"DelegateExecute"="{a015411a-f97d-4ef3-8425-8a38d022aebc}"

[HKEY_CLASSES_ROOT\Directory\shellex]

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers]

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\EncryptionMenu]
@="{A470F8CF-A1E8-4f65-8335-227475AA5C46}"

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\Offline Files]
@="{474C98EE-CF3D-41f5-80E3-4AAB0AB04301}"

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\Sharing]
@="{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}"

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}]

[HKEY_CLASSES_ROOT\Directory\shellex\CopyHookHandlers]

[HKEY_CLASSES_ROOT\Directory\shellex\CopyHookHandlers\FileSystem]
@="{217FC9C0-3AEA-1069-A2DB-08002B30309D}"

[HKEY_CLASSES_ROOT\Directory\shellex\CopyHookHandlers\Sharing]
@="{40dd6e20-7c17-11ce-a804-00aa003ca9f6}"

[HKEY_CLASSES_ROOT\Directory\shellex\DragDropHandlers]

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers]

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\Offline Files]
@="{7EFA68C6-086B-43e1-A2D2-55A113531240}"

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\Sharing]
@="{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}"

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{1f2e5c40-9550-11ce-99d2-00aa006e086c}]

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{4a7ded0a-ad25-11d0-98a8-0800361b1103}]

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}]

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{ECCDF543-45CC-11CE-B9BF-0080C87CDBA6}]

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{ef43ecfe-2ab9-4632-bf21-58909dd177f0}]
@=""