Pagina 1 di 1

Inserire voce nel menù contestuale File di windows

MessaggioInviato: mer mag 31, 2006 9:47 pm
da palomo2
Salve a tutti,
sto sviluppando un'applicazione che riceve in ingresso uno o più file e svolge delle elaborazioni. Mi piacerebbe inserire una voce nel menù contestuale di win... quello che si apre quando vengono selezionati uno o + file. In particolare mi servirebbe che la voce sia visibile solo se è selezionato un tipo di file (es. tutti i file .txt) e che, alla pressiome, venga eseguita una riga di comando con un argomento che contenga l'array di file selezionati.

Voi sapete per caso come fare ....

grazie mille..

MessaggioInviato: gio giu 01, 2006 12:35 pm
da palomo2
Per chi fosse interessato, ho trovato due soluzioni:

1a:
Se volete far comparire una voce nel mennu contestuale relativo ad ogni cartella bisogna settare queste voci di registro:
Codice: Seleziona tutto
HKEY_CLASSES_ROOT/Folder/shell/Mia voce
HKEY_CLASSES_ROOT/Folder/shell/Mia voce/Command
HKEY_CLASSES_ROOT/Folder/shell/Mia voce/Command/Default value="Comando.exe"


Se volete far comparire una voce nel menu contestuale di ogni file bisogna settare queste voci di registro:
Codice: Seleziona tutto
HKEY_CLASSES_ROOT/*/shell/Mia voce
HKEY_CLASSES_ROOT/*/shell/Mia voce/Command
HKEY_CLASSES_ROOT/*/shell/Mia voce/Command/Default value="Comando.exe"


Se invece volete far comparire una voce nel menu contestuale di un singolo tipo di file. Es. un file pdf:
Prima di tutto ci prendiamo il nome del tipo di file, quindi in HKEY_CLASSES_ROOT/.pdf/Default Value="AcroExch.Document". Quindi sappiamo che i file pdf sono del tipo AcroExch.Document.
Quindi settiamo queste voci di registro:
Codice: Seleziona tutto
HKEY_CLASSES_ROOT/AcroExch.Document/shell/Mia voce
HKEY_CLASSES_ROOT/AcroExch.Document/shell/Mia voce/Command
HKEY_CLASSES_ROOT/AcroExch.Document/shell/Mia voce/Command/Default value="Comando.exe"

HKEY_CLASSES_ROOT/AcroExch.Document.7/shell/Mia voce
HKEY_CLASSES_ROOT/AcroExch.Document.7/shell/Mia voce/Command
HKEY_CLASSES_ROOT/AcroExch.Document.7/shell/Mia voce/Command/Default value="Comando.exe"


I limiti di questa soluzione sono due:
Non puoi mettere voci a cascata nel menu contestuale e il comando non funziona se sono selezionati + file

2a:
ARTICOLO

Questa soluzione è molto + complicata ma non ha i limiti riscontrati nella prima soluzione


Come passare i file tramite riga di comando
es:
Default value="Comando.exe" "%L" <- per passare tutti i file selezionati
Default value="Comando.exe" "%1" <- per passare il primo file selezionato (%2 il secondo e così via)

MessaggioInviato: ven giu 02, 2006 12:10 am
da Silver Black
Ottimo lavoro Palomo! I tuoi sforzi e il tuo studio sono stati ricompensati da una grossa soddisfazione immagino. [applauso] [applauso] [applauso]

MessaggioInviato: ven giu 02, 2006 2:27 am
da palomo2
Silver Black ha scritto:Ottimo lavoro Palomo!

Grazie, mi piace condividere le mie esperienze

Silver Black ha scritto:I tuoi sforzi e il tuo studio sono stati ricompensati da una grossa soddisfazione immagino. [applauso] [applauso] [applauso]

Ovviamente! Ogni volta che imparo qualcosa di nuovo rimango sempre molto soddisfatto ma soprattutto sono ansioso di condividerla :)

A proposito... Questa soluzione fa parte di un progetto (spero utile) che ho deciso di chiamare Easy PDF Reorganizer. In pratica si tratta di un tool che permette la fusione, la separazione e l'esportazione in txt di file pdf con la possibilità di scegliere anche le pagine da considerare.
Ho rilasciato la prima beta con relativo file di installazione che provvederà a scaricare i componenti necessari (.net Framework 2.0 e MSI Installer Engine 2.0) se non sono presenti sulla macchina e ad inserire anche una voce nel menù contestuale di windows, relativo ai file pdf, che permetterà di aprire un file direttamente in Easy PDF Reorganizer.

Provatelo, potrebbe essere utile a qualcuno di voi. L'ho allegato al mess, fatemi sapere ;)

:!: Rilasciata la versione beta 0.2.0