Accedi per seguire   
Seguaci 0
ZipGenius

[delphi] Come Ottenere Privilegi Da Amministratore In Windows Xp?

9 messaggi in questa discussione

Come faccio ad ottenere i privilegi da amministratore per permettere ad una mia applicazione di scrivere nel registro, anche se questa è eseguita da un account utente limitato?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Come faccio ad ottenere i privilegi da amministratore per permettere ad una mia applicazione di scrivere nel registro, anche se questa è eseguita da un account utente limitato?

Che io sappia non si può...

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Che io sappia si può: http://www.delphi3000.com/articles/article_4176.asp

Devi loggarti al sito per leggere l'articolo.

Il codice riportato lì crea un componente che permette di eseguire un comando con privilegi più alti.

Ecco... Io vorrei che solo una specifica procedura del mio codice (es.: scrittura in HKEY_CLASSES_ROOT nel registro di windows) venisse eseguita con privilegi maggiori.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Premesso che non ho la più pallida idea di come si programmi in Delphi (e che forse dico una stupidata), non fai prima a dare i permessi adeguati alla voce di registro che dovrai modificare in seguito? :):P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Che io sappia si può: http://www.delphi3000.com/articles/article_4176.asp

Devi loggarti al sito per leggere l'articolo.

Il codice riportato lì crea un componente che permette di eseguire un comando con privilegi più alti.

Ecco... Io vorrei che solo una specifica procedura del mio codice (es.: scrittura in HKEY_CLASSES_ROOT nel registro di windows) venisse eseguita con privilegi maggiori.

Già...

Quella classe esegue comandi con privilegi da Administrator anche se si sta utilizzando un utente con privilegi minori...

Devi, però, avere a disposizione Username e Password di un utente che abbia privilegi da amministratore.

La classe, infatti, utilizza le API di sistema. La funzione CreateProcessWithLogonW che vuole Username e password di un altro utente

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Già...

Quella classe esegue comandi con privilegi da Administrator anche se si sta utilizzando un utente con privilegi minori...

Devi, però, avere a disposizione Username e Password di un utente che abbia privilegi da amministratore.

La classe, infatti, utilizza le API di sistema. La funzione CreateProcessWithLogonW che vuole Username e password di un altro utente

Ecco... Supponiamo di avere una procedura Write2Reg che deve scrivere alcune informazioni in HKEY_CLASSES_ROOT, potrei rilevare se l'utente è un amministratore o meno (ho già una funzione IsAdmin disponibile), e se non lo è potrei far apparire un dialogo con la richiesta di username e password per l'amministratore. Il mio problema è come modificare quel codice per far sì che non esegua un comando esterno, bensì una procedure all'interno del codice.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ecco... Supponiamo di avere una procedura Write2Reg che deve scrivere alcune informazioni in HKEY_CLASSES_ROOT, potrei rilevare se l'utente è un amministratore o meno (ho già una funzione IsAdmin disponibile), e se non lo è potrei far apparire un dialogo con la richiesta di username e password per l'amministratore. Il mio problema è come modificare quel codice per far sì che non esegua un comando esterno, bensì una procedure all'interno del codice.

Eh... Il problema è che vengono chiamate in causa le API di Windows... Cioè non ti trovi più all'interno della tua applicazione... Quindi devi sottostare alle leggi delle API (Ape regina, Ape operaia, ecc... :)). Quella funzione permette di eseguire comandi esterni...

Probabilmente potresti creare una dll con i comandi che ti interessa eseguire e richiamare quella funzionalità attraverso CreateProcessWithLogonW come se fosse un programma esterno...

Al momento non mi viene in mente altro :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

e' un trucco vecchio e sporco, e se hai un sistema aggiornato non funziona

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0