[英]Auto Launch application after Installation in default user (not in SYSTEM user)
我已經創建了一個簡單的Windows應用程序,以及它的安裝程序( Setup project
)。
由於我想在安裝后自動啟動應用程序,因此在Installer.cs中添加了此腳本。
public override void Commit(System.Collections.IDictionary savedState)
{
string appPath = Context.Parameters["AssemblyPath"].ToString();
System.Threading.Thread.Sleep(500);
System.Diagnostics.Process.Start(appPath, "2");
}
應用程序啟動完美,但以SYSTEM user
身份運行。
我希望自動啟動的應用程序在打開MSI的Default user
運行。
以前有一個問題 ,詢問如何在安裝后啟動應用程序。 不幸的是,被標記為已接受答案的答案鏈接到與您現有的代碼項目文章基本相同的代碼項目-而且,您已經注意到,這樣做的缺點是可能以錯誤的帳戶運行應用程序。
彼得·凱利(Peter Kelly)的答案鏈接到亞倫·斯特納(Aaron Stebner)博客上的帖子 ,其中詳細介紹了一種更正確的方法-您需要在安裝執行序列中添加一個操作,以在安裝完成后啟動可執行文件。 他包括一個腳本,以對已生成的msi文件進行必要的更改。
使用其他安裝程序技術( Wix ,Installshield等)時,可能存在直接在安裝程序項目中進行配置的方法。 除了使用Aaron的后期構建步驟外,無法通過Visual Studio安裝項目來實現。 另一個喜歡避免VS Setup項目的人。
沒有更多細節,很難說出您的應用程序為何在系統上下文中啟動。
簡而言之,您必須在安裝開始時保存當前用戶的上下文,在系統上下文中運行安裝本身,然后在安裝完成后,在原始用戶的上下文中啟動應用程序。
有關此方法的更多詳細信息,請參閱從UAC管理員級別進程以降低的特權啟動進程 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.