2012-02-29 13 views
7

C'è "Setup project" in VS. Durante l'installazione che lancio un altro processo:Esegui processo con l'utente corrente

System.Diagnostics.Process process = new System.Diagnostics.Process(); 
//fill StartInfo and run call Start() 
process.Start(); 

Se corro installazione sotto Windows 7 e installare per "Everyone", processo di avvio quadro del sistema. Se installo "Solo per me", il processo inizia sotto Utente corrente. Come faccio ad avviare sempre il processo sotto Utente corrente?

risposta

4

Ho trovato molto semplice solution. Tutto ciò di cui hai bisogno basta creare una nuova classe e copiare il testo da questo link.

Per avviare la chiamata processo ProcessAsUser.Launch("program name");

-1

Utilizzare la classe ProcessStartInfo e la sua proprietà UserName, quindi utilizzarlo come argomento per il metodo statico Process.Start.

ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 
Process.Start(startInfo); 
+0

L'ho provato prima, ma ho ricevuto il seguente messaggio di errore: "Il perno ha ricevuto dati errati". E non so come risolvere questo problema. – kralex

+0

E la password? questo non funzionerà senza di essa :) – John

0

Ho avuto un problema simile: la mia estensione setup (azione personalizzata) aveva bisogno di privilegi di amministratore che ha portato di un contenitore di elevazione. Dopo aver avviato la mia applicazione alla fine di "Just for Me", il processo ha avuto le impostazioni che sono state fatte per il contesto admin. Ad esempio il mio account utente piace vedere tutte le estensioni dei file in Windows Explorer ma l'account amministratore è stato configurato per nasconderli. Quindi in ogni casella aperta di file non ho potuto vedere le estensioni. Per curare questo questo pezzo di codice ha funzionato:

ProcessStartInfo startInfo = new ProcessStartInfo(ShortcutTarget); 
startInfo.LoadUserProfile = true; 
startInfo.UseShellExecute = false; 
Process.Start(startInfo); 

Funziona solo in modalità "Just for Me", in "tutti" le impostazioni della Admin vengono utilizzati. Ma questo è ok per me.