MFC小筆記:開機自動啓動

一、需求

本文實現MFC程序的開機自動啓動功能。

二、設計

開機自動啓動,可以通過註冊表實現。在Run節點下,新建一個字段,包括程序名稱、完整的路徑。如果要取消自動啓動,則刪除該字段即可。

三、編碼

代碼如下:

int SetAutorun(BOOL nEnable)
{
    // 獲取程序路徑
    CString sPath;
    GetModuleFileName(NULL, sPath.GetBufferSetLength(MAX_PATH + 1), MAX_PATH);
    char lpPath[MAX_PATH] = {0};
    strcpy_s(lpPath, (const char*)sPath.GetBuffer());
    HKEY hkey;
    DWORD dwLen = MAX_PATH;
    int ret = -1;

    // 注意,不能使用HKEY_LOCAL_MACHINE,權限不夠
    ret = RegOpenKeyEx(HKEY_CURRENT_USER,
        _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\"),
        0, KEY_WRITE, &hkey);
    if (ret != ERROR_SUCCESS)
    {
        return -1;
    }

    if (nEnable)
    {
        RegSetValueEx(hkey, _T("MyTest"), 0, REG_SZ, (CONST BYTE *)sPath.GetBuffer(), dwLen);

    }
    else
    {
        RegDeleteValue(hkey, _T("MyTest"));
    }

    RegCloseKey(hkey);

    return 0;
}
發佈了483 篇原創文章 · 獲贊 250 · 訪問量 110萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章