Pagina 1 di 1
[C] gestire il registro windows
Inviato: ven 8 giu 2007, 19:41
da Dani
Ciao : )
Volevo sapere quali funzioni mi permettono di gestire il registro di windows.
In pratica dovrei aggiungere ed eliminare ricorsivamente delle chiavi.
Fino ad ora ho usato una soluzione piuttosto "sporca", ovvero creavo un file temporaneo con le chiavi da inserire per poi passare il tutto ad un system("regedit ...")...
Quali funzioni devo andare a vedere ? Documentazione adatta a chi non ha mai usato windows.h ?
grazie.
Inviato: ven 8 giu 2007, 20:04
da whites11
Inviato: sab 9 giu 2007, 19:41
da Dani
Pare di si, grazie mille

Inviato: dom 10 giu 2007, 4:51
da Dani
No, non ci sono proprio, sto impazzendo

Ho creato in HKEY_LOCAL_MACHINE la chiave prova, e riesco tranquillamente ad eliminarla con tutti i valori che contiene, ma se dentro prova creo una sottochiave non riesco piu' ad eliminarla.
Guardando
http://msdn2.microsoft.com/en-us/library/ms724235.aspx ci sarebbe la soluzione ma:
- vorrei qualcosa di piu' semplice: non mi piace usare codice senza capirlo a fondo , e quello a fondo non riesco a capirlo
- strsafe.h non ce l'ho e non voglio ( e posso ) installare librerie a parte
Suggerimenti ?
Inviato: dom 10 giu 2007, 11:56
da gioco
Per cancellare una chiave con sottochiavi devi prima cancellare tutte le sottochiavi. Devi cioè prima attraversare tutto l'albero delle chiavi fino alle foglie, cancellarle tutte e poi risalire al livello superiore e ripetere la procedura.
Quel codice mi sembra buono. E' un algoritmo ricorsivo. La funzione RegDelnodeRecurse richiama se stessa, utilizzando lo stack per attraversare in profondità l'albero delle chiavi.
Ad ogni chiamata la funzione scende di un livello.
1) Se ci sono sottochiavi chiama se stessa per ogni sottochiave.
2) Se non ci sono sottochiavi si è arrivati in una foglia che viene cancellata.
Il risultato che si ha è che la cancellazione di una chiave avviene solo dopo che tutte le sue sottochiavi sono state cancellate.
Ovviamente puoi riscrivere l'algoritmo in forma iterativa (senza far uso della ricorsione) ma di solito è più facile e più leggibile scrivere algoritmi ricorsivi.
Inviato: lun 11 giu 2007, 0:33
da Dani
Ma l'header strsafe.h dove si trova ? A dev-c++ manca, infatti non trova le funzioni come StringCchCopy . Dovrei installare sdk mi sa
