Registrare l’estensione del file nel registro delle windows?

Voglio registrare la mia estensione di progetto nel registro delle windows. Ho cercato su google, almeno ho trovato questo codice, questo funziona bene, ma non capisco una riga. Che cosa significa “% L”.

Il codice C # è

string ext = ".ext"; RegistryKey key = Registry.ClassesRoot.CreateSubKey(ext); MessageBox.Show(exePath); key.SetValue("", "My Project"); key.Close(); key = Registry.ClassesRoot.CreateSubKey(ext + "\\Shell\\Open\\command"); //key = key.CreateSubKey("command"); key.SetValue("", "\"" + Application.ExecutablePath + "\" \"%L\""); key.Close(); key = Registry.ClassesRoot.CreateSubKey(ext + "\\DefaultIcon"); key.SetValue("", Application.StartupPath + "\\icon.ico"); key.Close(); 

questa è la linea che mi confonde

  key.SetValue("", "\"" + Application.ExecutablePath + "\" \"%L\""); 

Per favore, spiegami, ti sono molto grato in anticipo.

Se l’eseguibile dell’applicazione è in C: \ dir \ your program.exe, la riga è tradotta in:

“C: \ your dir \ your program.exe” “% L”

% L è tradotto nel file che stai aprendo, quindi il tuo programma sta eseguendo il file come primo parametro

Per capire il% L è necessario capire quale programma eseguirà la lettura dal registro.

In questo caso, i verbi specificati in `HKCR.ext \ shell * ‘vengono letti ed elaborati da explorer.exe quando avvia i programmi associati alle estensioni.

Non sembra esserci un elenco definitivo di ciò che Explorer cerca quando si crea una riga di comando. Tuttavia,% L dice a explorer che il programma il suo avvio accetterà la forma lunga del nome file sulla riga di comando. e i nomi di file lunghi possono contenere spazi.

Per questo motivo i programmi che richiedono lunghi nomi di file sulla riga di comando devono essere in grado di gestire gli spazi: explorer lo fa utilizzando “,” come separatore della riga di comando, o permettendo che i nomi di file sulla riga di comando vengano racchiusi tra virgolette.

%L è il ” nome lungo ” del file la cui associazione ha richiamato il tuo programma. Nei sistemi operativi moderni è identico a %1 ( nome breve ).