2012-02-29 75 views
7

VS中有「安裝項目」。在安裝過程中我啓動另一個進程:在當前用戶下運行進程

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

如果我在Windows 7下運行安裝程序,並安裝「所有人」,過程中的制度下啓動。如果我安裝「Just for me」,則在當前用戶下啓動進程。我如何始終在當前用戶下開始處理?

回答

4

我發現很簡單solution。所有你需要的只是創建一個新的類,並從這個鏈接複製文本。

要啓動進程調用ProcessAsUser.Launch("program name");

-1

使用ProcessStartInfo類和它的屬性UserName,然後用它作爲參數爲Process.Start靜態方法。

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

我已經嘗試過,但我得到了下一個錯誤信息:「螺柱接收不良數據」。我不知道如何解決這個問題。 – kralex 2012-03-01 08:00:07

+0

密碼怎麼樣?這不會沒有它的工作:) – John 2016-03-15 10:39:46

0

我有一個類似的問題:我的設置擴展(自定義操作)需要它提出了一個海拔箱管理員權限。在「Just for Me」結束後,我開始了我的應用程序後,該過程具有針對管理上下文進行的設置。例如,我的用戶帳戶喜歡在Windows資源管理器中查看文件的所有擴展名,但管理員帳戶已配置爲隱藏它們。所以在每個文件打開框中我都看不到擴展名。要解決這段代碼工作:

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

它只適用於「只爲我」模式,在「所有人」使用管理員的設置。但是這對我來說確實很好。

相關問題