|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2005
Città: A casa mia
Messaggi: 825
|
[c++] windows 7 admin mode problema
Buona sera a tutti!!
ho un problema con Windows 7 (e Vista di conseguenza). Ho scritto un applicativo che si deve autoeseguire all'avvio di windows In sostanza ho fatto si che l'applicativo si auto-copiasse in una cartella (system32) e nel registro ho scritto la chiave che all'avvio lo richiama. Il problema è che tutto ciò funziona SE E SOLO SE faccio partire il mio applicativo cliccando con il Dx e selezionando: Run as administrator. Se non lo faccio, il programma non si copia e non si inserisce la chiave di registro. come faccio ad ovviare il problema? questo è il codice "incriminato": Codice:
int auto_startup(char *prog_name) { HKEY hKey; HWND hWnd; char destPath[255]; hWnd = FindWindow("ConsoleWindowClass", NULL); ShowWindow(hWnd, SW_HIDE); if(!GetSystemDirectory(destPath, 255)) { write_log("\n[!] Errore nell'ottenere il percorso della cartella system32: ", true); sprintf(destPath, "C:\\WINDOWS\\system32\\%s", "molecola.exe"); } else { strcat(destPath, "\\"); strcat(destPath, "molecola.exe"); } if(!CopyFile(prog_name, destPath, FALSE)) { write_log("\n[!] Errore nel copiare Molecola nella cartella system32: ", true); return 1; } if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey) != ERROR_SUCCESS) { write_log("\n[!] Errore nella creazione della chiave di registro: ", true); return 1; } if(RegSetValueEx(hKey, "Molecola", 0, REG_SZ, (const unsigned char*) destPath, strlen(destPath)) != ERROR_SUCCESS) { write_log("\n[!] Errore nella creazione della chiave di registro: ", true); RegCloseKey(hKey); return 1; } RegCloseKey(hKey); return 0; } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non puoi ovviare, è giusto che funzioni così. L'unico modo è disattivare l'UAC.
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Jan 2005
Città: A casa mia
Messaggi: 825
|
Quote:
Non capisco.. eppure ho programmi installati che si sono tranquillamente inseriti nel registro di sistema e si autoavviano allo startup di windows senza che io abbia minimamente detto loro di avviarsi in modalità admin... come hanno fatto ?? |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ah, ok. Credevo che tu volessi bypassare completamente la cosa. O esegui come amministratore o ti viene richiesta la conferma tramite UAC.
http://www.codeproject.com/KB/vista-...ive_Guide.aspx |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2001
Messaggi: 12814
|
Servono i privilegi admin perché fai qualcosa che non dovresti fare.
Soprattutto non capisco perché il programma si debba auto-copiare necessariamente in system32. Per non avere problemi usa le cartelle del profilo utente (tipo %AppData%). |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
|
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
era meglio system32. le cartelle in %AppData%, come suggerisce il nome della variabile d'ambiente, non servono a contenere i programmi eseguibili ma i loro dati. i programmi vanno installati in Program Files.
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
ni... in %APPDATA% ci si installano anche alcuni programmi (tipo Screamer Radio).
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se sbaglia lui perché vuoi sbagliare anche te ?
![]() |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: May 2001
Messaggi: 12814
|
Quote:
Comunque se non erro ci dovrebbe essere il modo per richiamare l'elevazione direttamente da programma qualora ce ne fosse bisogno. PS: un altro esempio noto di programma che si installa in %AppData% è Google Chrome ![]() Ultima modifica di WarDuck : 16-03-2010 alle 22:44. |
|
![]() |
![]() |
![]() |
#11 | ||
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
Quote:
bravissima Google, vorrei proprio sapere quali fantomatiche motivazioni hanno dettato questa scelta assurda. |
||
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ho linkato sopra come fare il file manifest
![]() |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Di essere è possibile sicuramente, ma non ho mai provato (mai avuta questa necessità).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ecco qui un processo che si autoesegue elevato: http://www.codeproject.com/KB/vista-...aElevator.aspx
Ovviamente previa richiesta dell''UAC. |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Mi mancava proprio l'esempio. Grazie.
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Jan 2005
Città: A casa mia
Messaggi: 825
|
perchè èin remoto , e non posso sharare la cartella system32 , è FOLLE!!!
|
![]() |
![]() |
![]() |
#17 | ||
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
pardon
![]() Quote:
Quote:
![]() |
||
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Comunque è sicuramente fattibile. Total Commander, ad esempio, ne fa uso (ed è scritto in Delphi).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Probabilmente si potrà, ma credo che di fatto vada cambiato l'owner del processo attuale...
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:02.