Newsgroup: it.comp.programmare.win32
Titolo: OT: (forse) file .reg

salve...
non ho ben chiaro come fare un file.reg:
 cosě lo so fare...:
HKEY_CLASSES_ROOT\.bmp\ShellEx
ma se in sheelEx ci voglio mettere un "command" per esempio?
mi va bene anche un link a qualche documentazione...
grazie!

Un file .reg deve innanzitutto cominciare con:
REGEDIT 4
Ora, osserva il seguente estratto del registro (ottenuto da Regedit
selezionando la sottochiave ".bmp" di HKEY_CLASSES_ROOT e scegliendo
"Esporta file del registro di configurazione..." dal menu "Registro di
configurazione"):
REGEDIT4
[HKEY_CLASSES_ROOT\.bmp]
@="Paint.Picture"
"Content Type"="image/bmp"
[HKEY_CLASSES_ROOT\.bmp\ShellNew]
"NullFile"=""
[HKEY_CLASSES_ROOT\.bmp\ShellEx]
[HKEY_CLASSES_ROOT\.bmp\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{7376D660-C583-11d0-A3A5-00C04FD706EC}"
Per ora considera solamente il testo racchiuso da parentesi quadre; per
creare una sottochiave devi dichiarare il suo percorso completo e accodare
il nome che le vuoi dare: quindi per creare la chiave ".bmp" in
HKEY_CLASSES_ROOT è sufficiente dichiarare HKEY_CLASSES_ROOT, inserire un
carattere backslash "\" (come nei normali percorsi di file) e accodare
".bmp" (il tutto racchiuso in parentesi quadre). Similmente, per creare una
sottochiave in ".bmp" (ShellNew), è stato dichiarato il percorso completo
(ormai esistente) di ".bmp" ed è stato aggiunto un "\" seguito dal nome
della nuova chiave. Identica sorte è toccata a "ShellEx" che è anch'essa
sottochiave di ".bmp"; All'interno di ShellEx è stata creata un'altra
sottochiave ({BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}).
Ora, considera le altre linee (quelle non racchiuse in parentesi quadre);
servono ad inserire valori nelle chiavi e a impostare i relativi dati: la
parte a sinistra dell'uguale è il nome del valore (racchiuso da virgolette),
mentre la parte a destra rappresenta i dati associati a quel valore; la
chiocciolina (@ NON racchiusa da virgolette) indica il valore di default
(quello che in Regedit viene indicato con l'etichetta "(Predefinito)");
naturalmente, può esserci solamente un valore di default per chiave.
In questo esempio i dati (la parte a destra dell'uguale) sono tutti di tipo
"testo" (stringa) e il fatto di averli racchiusi tra virgolette è
sufficiente a qualificarli come tali (N.B.: anche un valore numerico viene
interpretato come testo se è racchiuso da virgolette ). Al valore "NullFile"
è associata una stringa vuota ("").
N.B.: se la stringa contiene caratteri backslash (es. un percorso di file)
devi raddoppiarli (se sei un programmatore C, non dovrebbe essere una grossa
novità); ad esempio:
"DefDir"="c:\\Documenti"
"DefFile"="c:\\Documenti\\Documento.doc"
Esistono altri due tipi di dato: dword e binario; considera la seguente
riga:
"Default_CodePage"=dword:00006faf
i dati associati al valore "Default_CodePage" sono di tipo "dword", cioè un
valore intero a 32 bit; deve essere preceduto da "dword:" (senza virgolette)
e deve essere espresso in esadecimale (in realtà, credo che esista qualche
notazione per poterlo esprimere in decimale, ma non la conosco).
Prendi in esame la seguente riga (non so come verrà visualizzata dal tuo
newsreader, comunque è una riga sola):
"Saved Toolbar Settings"=hex:11,9e,00,00,ff,ff,ff,ff,07
è un valore che ha associato un dato di tipo binario; viene contraddistinto
da "hex:" ed è formato da un numero qualunque di bytes (in questo caso 9)
espressi in esadecimale. La riga precedente è stata accorciata, infatti
spesso i dati binari sono ben più lunghi di così; se devi andare a capo puoi
usare un backslash:
"Saved Toolbar Settings"=hex:11,9e,00,00,\
ff,ff,ff,ff,07
Nota che il "\" è stato messo dopo una virgola; mai mettere il "\" dopo un
numero e mettere la virgola a capo!
Non mi viene in mente altro da dire, comunque, se hai dei dubbi, puoi sempre
esportare chiavi del registro con Regedit ed esaminare il file .reg che
ottieni.
Stefano.

wow! ti ringrazio....
mica l'avevo vista, quella voce, nel menù del regedit....
mah!
certe volte i mie occhi vanno in sciopero!
grazie per l'esauriente spiegazione!
p.s.
sai rispondere a questo?
(senza sbatterti troppo: è solo una curiosità)
nel menù pop-up del tasto destro, sotto la voce nuovo, ho messo "file
readme".
questo dovrebbe creare un nuovo file readme.txt (nel punto in cui viene
premuto il tasto destro) e aprirlo subito!
Lo creo chiamando "notepad readme.txt" ma mi viene una fastidiosa finestra:
"non trovo il file! lo creo?". Se tento di crearlo con nullfile = "", poi
non me lo apre..
ho provato con un notepad /? e altri simili, ma a quanto sembra non accetta
parametri.
si può fare nel registro, o devo per forza chiamare un progr. esterno?