我製作了我的窗口應用程序的exe文件。我希望當我的exe安裝在系統上並運行第一次machine.I想檢查它是否運行第一次系統會自動重啓,第一次運行後系統不應該每次都重啓。如何檢查我的c#窗口應用程序在安裝後是否第一次運行
我可以這樣做嗎?請幫幫我。
在此先感謝。
我製作了我的窗口應用程序的exe文件。我希望當我的exe安裝在系統上並運行第一次machine.I想檢查它是否運行第一次系統會自動重啓,第一次運行後系統不應該每次都重啓。如何檢查我的c#窗口應用程序在安裝後是否第一次運行
我可以這樣做嗎?請幫幫我。
在此先感謝。
I can't believeI'm saying this,但你想檢查一個文件是否存在。
如果文件不存在,請提示用戶輸入權限,然後創建並重新啓動系統。您也可以選擇刪除與您的應用程序一起部署的臨時文件,但我更喜歡創建文件,因爲您也可以將該文件用作默認設置文件或初始數據庫。
請注意,在這裏我從來沒有建議從文件中讀取,所以這仍然與鏈接問題中的位置兼容。
我還需要問你爲什麼要重新啓動系統。 沒有什麼在Windows或在.Net框架需要這個。這可能會讓你的用戶惱火。
我認爲你可以使用這個註冊表項。在執行應用程序時檢查註冊表中的某個鍵,以及是否將其設置爲某個值。如果註冊表項不存在,則意味着應用程序首次執行。
這裏的問題是編寫該註冊表項需要管理員權限......但後來因爲我們正在討論重新啓動系統,這可能不是一件壞事。 –
您可能想要使用一個簡單的空文件「first.tmp」,通過它的存在告訴您您第一次運行。如果是這種情況,請在第一次刪除它。
你也可以看Check condition if the appliation is running for the first time after being installed其他答案。
一種選擇是使用user's program settings中的值。起初真的,你可以將其設置爲false,像這樣:
if (Properties.Settings.Default.IsFirstTime)
{
Properties.Settings.Default.IsFirstTime = false;
}
我也建議增加一個「UpgradeRequired」布爾值默認情況下是如此的設置。當用戶安裝該程序的新版本,你需要調用
Properties.Settings.Default.Upgrade();
,並設置
Properties.Settings.Default.UpgradeRequired = false;
,然後保存設置:
Properties.Settings.Default.Save();
這樣做的原因是,如果安裝新版本,IsFirstTime
將被重置爲其默認值(除非使用Upgrade()
來佔用當前值)。
這樣,您不必擔心註冊表,而且您不必擔心文件權限。
這就是,把它們放在一起:
// this must happen as soon as your program starts, before
// you do anything else with the settings
if (Properties.Settings.Default.UpgradeRequired)
{
// upgrade FIRST, before doing anything else with the settings
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.UpgradeRequired = false;
Properties.Settings.Default.Save();
}
if (Properties.Settings.Default.IsFirstTime)
{
// this is the first time running the program
Properties.Settings.Default.IsFirstTime = false;
Properties.Settings.Default.Save();
}
這工作就好了爲我們的客戶。
您可以在數據庫表中添加一個status_flag字段,並在第一次運行應用程序時填寫它。您需要檢查該字段是否已包含值,如果是,則不是第一次運行。
使用註冊表項存儲指示應用程序第一次啓動的標誌。任何註冊表在卸載時將如何清除。 – Mahantesh