轉載:程序開機啓動

關鍵字 程序開機啓動
原作者姓名 冬瓜

介紹
最近自己寫了個小程序,裏面有些代碼可以重用,所以拿出來獻醜了
這裏有兩段代碼,利用這兩段代碼
可以輕鬆的實現自己的程序的開機啓動和刪除開機啓動功能,


正文
本代碼段是在註冊表中的
HKEY_LOCAL_MACHINE
下的Software//Microsoft//Windows//CurrentVersion//Run
子鍵下加子鍵,使程序能夠自動運行.


//由於使用了類 CRegKey,所以在使用前得包含頭文件 #include <atlbase.h>


函數一:

BOOL AddAutoRun() //增加自動運行功能 增加成功返回TRUE
{

CRegKey m_RegKey;
LPCTSTR lp="Software//Microsoft//Windows//CurrentVersion//Run";
//打開鍵
if(m_RegKey.Open(HKEY_LOCAL_MACHINE,lp)!= ERROR_SUCCESS)
return FALSE;

CString sPath;
//得到程序的路徑
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer();
//(sPath,"XXX"))中的XXX表示你在Run下的子鍵的名字,你可以寫成你的程序的名字
//這裏的XXX要和函數二中的XXX要一致哦

if(ERROR_SUCCESS !=m_RegKey.SetValue(sPath,"XXX"))
{
m_RegKey.Close();
return FALSE;
}
else
{
m_RegKey.Close();
return TRUE;
}

}
函數二:
BOOL DelAutoRun() //刪除自動運行功能 刪除成功返回TRUE
{
CRegKey m_RegKey;
LPCTSTR lp="Software//Microsoft//Windows//CurrentVersion//Run";
if(m_RegKey.Open(HKEY_LOCAL_MACHINE,lp)!= ERROR_SUCCESS)
return FALSE;
//DeleteValue("XXX"))中的XXX表示你在Run下的子鍵的名字,你可以寫成你的程序的名字
//這裏的XXX要和函數一中的XXX要一致哦

if(ERROR_SUCCESS !=m_RegKey.DeleteValue("XXX"))
{
m_RegKey.Close();
return FALSE;
}
else
{
m_RegKey.Close();
return TRUE;
}
}


使用說明:
(1):由於使用了類 CRegKey,所以在使用前得包含頭文件 #include <atlbase.h>
(2):如果在編譯的時候,發現宏MAX_PATH沒有被聲明的話,把它換成數字 260 既可
(3):函數中的 "XXX"爲HKEY_LOCAL_MACHINE
下的Software//Microsoft//Windows//CurrentVersion//Run
子鍵下加子鍵的名字,你可以換成你程序的名字,但兩個函數中的 "XXX"要 一致
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章