|
||||
|
|
#1 (permalink) |
|
Nuovo della community ![]()
2 Messaggi
![]() |
Salve a tutti mi sono appena iscritto al forum, vorrei chiedere un aiuto a qualcuno che mastica C++ meglio di me. Descrivo il problema, ho scritto un programma che scrive una chiave di registro per avviarsi automaticamente al Boot (Don't worry nn è un virus), riporto le linee di codice della funzione che imposta la chiave:
codice:
void RunRegistry()
{
//Dichiariamo una variabile per la directory corrente
TCHAR szModule [MAX_PATH];
//Valuta il posizionamento attuale
GetModuleFileName(0,szModule,MAX_PATH);
char buffer[512];
HKEY software;
//Mette in "buffer" il percorso
strcpy(buffer,szModule);
//memorizza la grandezza della variabile unsigned.
unsigned long size = strlen(buffer);
//apre ad esempio la chiave "run"
RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\run",&software);
//inserisce il percorso
RegSetValueEx(software,"WINLOGS",NULL,REG_SZ,(LPBYTE)buffer,size);
//chiude
RegCloseKey(software);
}
codice:
FILE *logfile = fopen(LOG_FILE, "a");
if(logfile != NULL) // se si ha accesso al file scrive, altrimenti lascia perdere l'operazione
{
fprintf(logfile, "%s", temp); // aggiunge al file il contenuto della stringa temp
fclose(logfile);
}
Ultima modifica di bottomap : 10-11-2009 a 08:45. Motivo: formattato codice |
|
|
|
|
|
#2 (permalink) |
|
Moderatore Globale ![]() ![]()
2,935 Messaggi
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ciao,
Il programma che viene lanciato lo hai scritto tu? E la variabile o costante LOG_FILE cosa contiene? E'possibile che il file sia finito in C:\ ,in C:\WINDOWS o in C:\WINDOWS\SYSTEM32... hai controllato? Se in LOG_FILE hai un path relativo o un nome di file privo di path, verrà usata la "directory corrente". Quando lanci l'eseguibile con un doppio click, in genere la directory corrente è ben definita e generalmente la cartella da cui avvii lo stesso. Se l'eseguibile lo avvia il sistema, non è detto che la directory corrente sia quella del programma. Proprio per questo nella chiave inserisci un path assoluto e non relativo (dovrebbe funzionare solo se l'eseguibile è in una cartella di sistema o nel path). Se hai modo di toccare i sorgenti dell'eseguibile lanciato, potresti modificarlo molto velocemente in modo che provveda lui a salvare l'eseguibile in un path assoluto piuttosto che relativo. Ciaociao ![]()
__________________
![]() Venite a farmi un saluto su http://www.bottomap.com/ - Come porre domande in modo intelligente - Hai mai dato un'occhiata al Regolamento del Forum? Se la risposta è no, sarebbe proprio l'ora di farlo... - Se un utente ti è stato d'aiuto usa il pulsante Commenta Intervento per aumentare la sua reputazione! "La violenza è l'ultimo rifugio degli incapaci" - I.Asimov (per chiunque se lo fosse mai chiesto, il nick Bottomap è volutamente sgrammaticato) |
|
|
|
![]() |
| Strumenti della discussione | |
| Modalità di visualizzazione | |
|
|
Tutti gli orari sono GMT +2. Attualmente sono le 09:56.












Modalità lineare

