通過注冊表實現開機自啟動


前言:

  實現開機自啟動的途徑和方式有很多種,其中修改注冊表方式應用最為廣泛。注冊表相當是操作系統的數據庫,記錄着系統中方方面面的數據,其中也不乏直接或間接導致開機自啟動的數據。

實現原理:

  windows提供了專門的開機自啟動注冊表。在每次開機完成后,它都會在這個注冊表鍵下遍歷鍵值,以獲取鍵值中的程序路徑,並創建進程啟動程序。所以,只需要在這個注冊表鍵下添加想要設置自啟動程序的路徑就可以了。其中常見的兩個路徑,分別是 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 與 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

  注意:要修改HKEY_LOCAL_MACHINE主鍵的注冊表,這要求程序要有管理員權限。而修改HKEY_CURRENT_USER主鍵的注冊表,只需要用戶默認權限就可以實現

實現代碼:

BOOL Reg_CurrentUser(char *lpszFileName, char *lpszValueName)
{
    // 默認權限
    HKEY hKey;
    // 打開注冊表鍵
    if (ERROR_SUCCESS != ::RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\ Windows\\ CurrentVersion\\Run", 0, KEY_WRITE, &hKey))
    {
        ShowError("RegOpenKeyEx");
        return FALSE;
    }
    // 修改注冊表值,實現開機自啟動
    if (ERROR_SUCCESS != ::RegSetValueEx(hKey, lpszValueName, 0, REG_SZ, (BYTE *)lpszFileName, (1 + ::lstrlen(lpszFileName))))
    {
        ::RegCloseKey(hKey);
        ShowError("RegSetValueEx");
        return FALSE;
    }
    // 關閉注冊表鍵
    ::RegCloseKey(hKey);

    return TRUE;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM