PDA

View Full Version : Files Modifica-Registro


Furla
05-06-2005, 11:37
vorrei sapere come si scrivono (basta il notepad vero?) i files per modificare le chiavi di registro. nella sezione tips&tricks ho trovato questi 2 files ma la sintassi sembra diversa:

Apri con Notepad:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\Apri con Notepad]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\Apri con Notepad\command]

@="notepad %1"

intuitivamente, in questo file vengono dichiarete le chiavi da cambiare, poi c'è una stringa (@="notepad %1") che non capisco cosa significhi...

oppure numero massimo di connessioni simultanee --> 5:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MAXCONNECTIONSPERSERVER"=dword:00000005
"MAXCONNECTIONS PER1_0SERVER"=dword:00000005

qui invece sembra più chiaro, ad ogni chiave citata si assegna un valore.


in definitiva, se volessi modificare alcune chiavi tramite un file da eseguire come devo scrivere? e se ne volessi creare di nuove?

Furla
06-06-2005, 16:16
up

skirzo
06-06-2005, 18:10
scrivi quello che devi scrivere, percorso nuovi velori o nuove stringhe\chiavi e salvi il file con l'estensione .reg
una volta che ci clicchi su ti chiede se vuoi aggiungere le informazioni al registro e gli dici di si

Furla
06-06-2005, 18:20
si ma devo fare come nel secondo esempio? e se ne volessi cancellare una?

Manp
06-06-2005, 18:41
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell]
in questo modo crei la chiave (che corrisponde ad una cartellina nella rappresentazione in regedit) avente il percorso specificato

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MAXCONNECTIONSPERSERVER"=dword:00000005
"MAXCONNECTIONS PER1_0SERVER"=dword:00000005
in questo modo invece crei la chiave avente il percorso specificato (se già non esiste) e crei valori dword (o qualsiasi altro tipo valido, a seconda di quello che specifichi al posto di dword) all'interno della chiave stessa

la sisntassi è la medesima, con la differenza che nel primo caso non crei nessun valore nella chiave, nel secondo caso crei due valori dword di nome con i nomi specificati e con i valori specificati

@="notepad %1"
la chiocciola indica semplicemente il valore "Predefinito" presente in tutte le chiavi

per cancellare una chiave la sintassi è semplicissima, ad esempio:
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell]
in questo modo cancelli la chiave "shell"

:)

skirzo
06-06-2005, 18:42
si ma devo fare come nel secondo esempio? e se ne volessi cancellare una?
ma una che?
una stringa fra le tre dici? ne scrivi solo due oppure la vai a cancellare nel registro
se poi intendi altro non so

Manp
06-06-2005, 18:45
aggiungo, così:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\Apri con Notepad]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\Apri con Notepad\command]
@="notepad %1"

crei 3 chiavi nell'ultima delle quali assegni la stringa "notepad %1" al valore Predefinito all'interno della chiave stessa

così:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MAXCONNECTIONSPERSERVER"=dword:00000005
"MAXCONNECTIONS PER1_0SERVER"=dword:00000005

crei una chiave al cui all'interno ci sono 2 valori dword, il risultato è diverso, ma la sintassi è la stessa

:)

Manp
06-06-2005, 18:46
ma una che?
una stringa fra le tre dici? ne scrivi solo due oppure la vai a cancellare nel registro
se poi intendi altro non so

per cancellare una chiave la sintassi è semplicissima, ad esempio:
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell]
in questo modo cancelli la chiave "shell"

:)

Furla
08-06-2005, 00:22
ok grazie mille :cool:

Furla
08-06-2005, 15:50
ultimo dubbio, si possono scrivere commenti all'interno del file .reg? con quale sintassi?

Furla
08-06-2005, 16:16
ho già un problemino :rolleyes:

io nel file ho scritto questo:


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
“MenuShowDelay=dword:100”


quando lo apro mi chiede conferma, poi mi dice che le informazioni contenute nel file sono state inserite nel registro.

quando però vado a controllare con il regedit, il valore rimane settato come era prima... perché?

Manp
08-06-2005, 18:48
ho già un problemino :rolleyes:

io nel file ho scritto questo:

quando lo apro mi chiede conferma, poi mi dice che le informazioni contenute nel file sono state inserite nel registro.

quando però vado a controllare con il regedit, il valore rimane settato come era prima... perché?

perchè sei un :lamer:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
"MenuShowDelay"="100"


in più il valore che vuoi aggiungere non è un valore dword... c'è già un valore stringa chaimato "MenuShowDelay" nel registro, quindi NON è possibile aggiungerne un altro con lo stesso nome, ma devi modificare il valore che già c'è (e che è una stringa)

e stai attento alle virgolette!!!

:D

Furla
08-06-2005, 19:58
e come si fa a modificarlo?

Manp
08-06-2005, 20:45
il reg che ho postato sopra che ha che non va???

se tu tenti di creare un valore che ha lo stesso nome di quello che già esiste ma è di tipo diverso l'operazione fallirà

se crei un valore che ha lo stesso nome di quello che già esiste e anche lo stesso tipo, quello esistente viene sovrascritto e quindi modificato

:)

Furla
08-06-2005, 23:00
no a me lo lascia com'è, ho provato anche così:

[HKEY_CURRENT_USER\Control Panel\Desktop]
“MenuShowDelay"=dword:0000000100

così

[HKEY_CURRENT_USER\Control Panel\Desktop]
“MenuShowDelay"=dword:100

e così

[HKEY_CURRENT_USER\Control Panel\Desktop]
“MenuShowDelay"="dword:0000000100"

ma niente da fare...

Manp
09-06-2005, 00:50
no a me lo lascia com'è, ho provato anche così:

[HKEY_CURRENT_USER\Control Panel\Desktop]
“MenuShowDelay"=dword:0000000100

così

[HKEY_CURRENT_USER\Control Panel\Desktop]
“MenuShowDelay"=dword:100

e così

[HKEY_CURRENT_USER\Control Panel\Desktop]
“MenuShowDelay"="dword:0000000100"

ma niente da fare...

ma sei di coccio?!?!?!?! :stordita:
cioè io che cavolo scrivo a fare se tu non leggi?!?! :confused: :mbe:

nel registro, in quella posizione, c'è già un valore “MenuShowDelay" MA NON E' UN DWORD! in quel modo tu cerchi di creare o modificare un valore di nome “MenuShowDelay" ti tipo dword, ma:
-crearlo non si può perchè c'è già un valore di nome “MenuShowDelay" di tipo stringa di testo
-modificarlo non si può perchè c'è già un valore di nome “MenuShowDelay" di tipo stringa di testo e tu gli vuoi passare un tipo dword

NON possono esserci nella stessa posizione due valori con lo stesso nome, nemmeno se di tipi differenti!!!

per modificare il valore stringa di nome “MenuShowDelay" presente nella posizione che hai specificato devi passare un valore stringa, non un dword!

il reg è quello che ti ho scritto sopra, come vedi non passo un dword ma una stringa:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
"MenuShowDelay"="100"

="100" significa che tu assegni al valore “MenuShowDelay" la stringa "100"

=dword:00000100 significa assegnare al valore “MenuShowDelay" un valore di tipo dword, ma non si può, perchè c'è già un valore “MenuShowDelay" nella stessa posizione che è una stringa, non un dword

se il valore col nome che specifichi non c'è nella posizione che specifichi allora verrà creato, ma se il valore col nome che specifichi c'è già nella posizione che specifichi viene modificato solo se gli passi un nuovo valore dello stesso tipo!

come lo fai tu non funziona perchè gli passi mele ma lui vuole banane... più semplice di così non so come spiegarlo :read: :D

chiaro?

:)

Ciaba
09-06-2005, 05:17
lol :D
...cmq molto interessanti alcuni dettagli...

Furla
09-06-2005, 07:36
ok ora funziona tutto...

ma la domanda ora è (per capire): che vuol dire dword???

Manp
09-06-2005, 11:55
ok ora funziona tutto...

ma la domanda ora è (per capire): che vuol dire dword???

dword è un tipo, scrivendo:
“MenuShowDelay"=dword:0000000100
specifichi che tutto quello che vien dopo i ":" deve essere interpretato come un tipo di dato dword

questi sono i tipi di dati validi in regedit:

Data type Description

REG_BINARY Raw binary data. Most hardware component information is stored as binary data and is displayed in Registry Editor in hexadecimal format.

REG_DWORD Data represented by a number that is 4 bytes long. Many parameters for device drivers and services are this type and are displayed in Registry Editor in binary, hexadecimal, or decimal format.

REG_EXPAND_SZ A variable-length data string. This data type includes variables that are resolved when a program or service uses the data.

REG_MULTI_SZ A multiple string. Values that contain lists or multiple values in a form that people can read are usually this type. Entries are separated by spaces, commas, or other marks.

REG_SZ A fixed-length text string.

REG_FULL_RESOURCE_DESCRIPTOR A series of nested arrays designed to store a resource list for a hardware component or driver.

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/regedit_overview.mspx

:)

Manp
09-06-2005, 23:16
una cosa che mi sono dimenticato, per cancellare un singolo valore all'interno di una chiave la sintassi è questa:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
"MenuShowDelay"=-

in questo modo il solo valore "MenuShowDelay" verrà cancellato

:)

Furla
14-06-2005, 09:55
c'è un modo di inserire commenti? oppure scrivendo qualsiasi cosa che non sia riconosciuta come istruzione viene ignorata?

Compass
14-06-2005, 13:30
Ciao!

Come posso cambiare le occorrenze di una certa stringa in tutte le chiavi in cui compare?
Come detto in un altro topic (Win XP SP2: come rinominare la partizione di installazione), ho cambiato i nomi dei miei HD. Nel registro ho trovato i riferimenti dei vari programi installati, ma con l'indicazione della vecchia lettera identificativa dell'HD: vorrei cambiarla nella nuova.
Inoltre, mi è sembrato di capire che nel registro non c'è solo il modo usuale per indicare le directory "C:\ecc.ecc." , ma anche delle stringhe con questa struttura: " *C{* ", dove l'asterisco sta per stringhe di varia lunghezza e composizione (sembra un qualcosa di codificato...).

Dove potrei trovare informazioni dettagliate sulla struttura e sulla composizione del registro e dei suoi contenuti, chiavi e loro codifica?
Grazie a tutti!