|
|||||||
|
|
|
![]() |
|
|
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: 12864
|
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: 12864
|
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 23: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: 18:56.




















