31/10/06 17:34
redlion
Salve a tutti, sono stato un po' assente in questi ultimi tempi e quindi ho postato ankora meno, però vedo che questa sezione è sempre molto attiva e quindi vi espongo un piccolo dubbio
In poche parole il mio obiettivo è creare una chiave di registro in ...\CurrentVersion\Run (la chiave per intero sta nel codice) e inserirvi come valore una stringa che richiami il programma stesso ad ogni riavvio. (Mi sembra che tempo fa ci fosse stato qualkuno a postare una richiesta sempre sulle regkey).
Ad ogni modo, nel mio tentativo riesco a far funzionare il tutto se (e solo se ) è l'utente a specificare la directory del programma.
Quello che vorrei è che il programma facesse in modo di "auto-rilevare" la directory in cui si trova e di porla all'interno dell'array ProgramPath (una volta che capisco come rilevare la directory, metterla nella variabile credo sia il meno )
Esiste un modo semplice e indolore per farlo?
Thx
In poche parole il mio obiettivo è creare una chiave di registro in ...\CurrentVersion\Run (la chiave per intero sta nel codice) e inserirvi come valore una stringa che richiami il programma stesso ad ogni riavvio. (Mi sembra che tempo fa ci fosse stato qualkuno a postare una richiesta sempre sulle regkey).
Ad ogni modo, nel mio tentativo riesco a far funzionare il tutto se (e solo se ) è l'utente a specificare la directory del programma.
HKEY hKey; LONG warn; TCHAR RegValue[] = "expl0rer.exe"; BYTE ProgramPath[300]; int choice = MessageBox(NULL, "Vuoi avviare il file ad ogni riavvio?", "Scelta", MB_ICONASTERISK | MB_YESNO); if (choice == IDYES) { // crea la chiave cout << "\nInserire la directory dove si trova il programma che si vuole far avviare all'avvio di Windows:\nPercorso: "; gets((char*)ProgramPath); // l'utente inserisce la path warn = RegCreateKey(HKEY_LOCAL_MACHINE,"Software\Microsoft\Windows\CurrentVersion\Run",&hKey); // gestione errore if(warn!= ERROR_SUCCESS) cerr<<"Key non creata"; warn=RegSetValueEx(hKey,RegValue,0,REG_SZ,ProgramPath,sizeof(ProgramPath)); cout << "\nPeso chiave" << sizeof(ProgramPath) << endl; if(warn!= ERROR_SUCCESS) cerr <<"Key non creata"; RegCloseKey(hKey); MessageBox(NULL, "Chiave creata", "Yuppi!", MB_OK | MB_ICONEXCLAMATION); }
Quello che vorrei è che il programma facesse in modo di "auto-rilevare" la directory in cui si trova e di porla all'interno dell'array ProgramPath (una volta che capisco come rilevare la directory, metterla nella variabile credo sia il meno )
Esiste un modo semplice e indolore per farlo?
Thx
Ultima modifica effettuata da redlion 31/10/06 17:39
aaa