2014-03-25 137 views
1

我正在創建C++應用程序,並想給我的用戶啓動Windows時啓動我的應用程序的選項。首先要介意的是,我使用Windows註冊表來設置,但不知道在哪裏寫和寫什麼。此外,用戶在運行我的應用程序時需要具有管理員權限,以便能夠在需要的地方寫入Windows註冊表的那一部分?如何在Windows啓動時啓動應用程序?

+0

你的意思是你想在Windows啓動時啓動應用程序,或者你想在啓動時,用戶登錄該應用程序? –

回答

2

您需要使用Software\Microsoft\Windows\CurrentVersion\Run密鑰(有關更多信息,請參閱MSDN)。 (字符串)值應該是應用程序的路徑。

您不需要管理權限就可以在HKEY_CURRENT_USER中創建它,但是您的應用程序只會在當前用戶的會話中啓動。如果您需要爲所有用戶自動啓動,請使用HKEY_LOCAL_MACHINE配置單元以提升的權限!

+0

謝謝。我認爲這會做到。 – Tracer

1

註冊表是隱藏的方式;程序菜單中的啓動文件夾是用戶可見的方式。見CSIDL_STARTUP。不需要管理員權限,這是每個用戶的設置。 CSIDL_COMMON_STARTUP需要管理員權限。

+0

但是,然後很難檢測到應用程序是否已經啓動。 – Tracer

+0

它實際上相當容易,只是一個文件檢查。 – MSalters

1

您可以通過註冊表添加應用程序來啓動。 我寫了一個樣本函數,你

public void AddToStartup(string name) 
    { 
     RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 
     rkApp.SetValue(name + ".exe", Application.ExecutablePath.ToString()); 
    } 
+0

謝謝。編寫代碼對我來說沒有任何問題。我只是想知道在哪裏寫什麼,並且需要管理員權限。 – Tracer

相關問題