我正在開發一個應用程序在C++中有一個選項「自動啓動」。當用戶設置該選項時,程序應在Windows中更改,以便在Windows啓動和用戶登錄時由Windows啓動。此外,當用戶取消設置該選項時,該程序必須重新啓動。C++應用程序自動運行在Windows啓動
我不需要運行應用程序作爲服務,所以它足以在用戶登錄後在某個用戶的帳戶下運行。那麼讓Windows運行我的應用程序的最佳方式是什麼?在下次啓動和用戶登錄?我搜索了一個使用啓動文件夾的建議。這是最好的和無害的方式?
如果是這樣,我有2個問題:
- 如何檢測啓動文件夾。我不喜歡SHGetSpecialFolderLocation()的輸出。它似乎在測試WinXP平臺(C:\ Documents and Settings \%username%)時返回我的「HOME」目錄。
- 如何使用C++創建.lnk文件?我認爲複製整個.exe文件是不好的主意。
其實我的程序是跨平臺的,但是「自動啓動」選項只能用於windows。
更新
嘗試SHGetSpecialFolderLocation並在Windows7中得到了良好的價值: 「C:\用戶\帕維爾\應用程序數據\漫遊\微軟\的Windows \開始菜單\程序\啓動」 注意:如果你使用MinGW,你應該在包含ShlObj.h之前將_WIN32_IE定義爲0x0400。
什麼是使用註冊表(HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run)和啓動文件夾之間的最佳解決方案(在觀點良好的編程)?
對於所有用戶或只是當前登錄的用戶? –