您的位置:首页 > 编程语言

注册表编程VC 使程序开机自动运行

2010-08-18 10:23 295 查看
代码如下:

void CAutoRunProDlg::OnSet()

{

//判断操作系统,如果不是2000、xp、2003,则程序退出

OSVERSIONINFO os;

os.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);

GetVersionEx(&os);

if(os.dwPlatformId!=VER_PLATFORM_WIN32_NT)

{

AfxMessageBox("本系统不是Window2000、WindowXp或Window2003,本程序不适合运行!");

return;

}

UpdateData(true);

if(m_strExe.IsEmpty())

{

AfxMessageBox("加载应用程序为空");

return;

}

HKEY hKey;

CString sKeyName;

unsigned char szFilePath[100];

//打开注册表

LONG InRes=RegOpenKeyEX(HKEY_LOCAL_MACHINE,//要打开的目录在HKEY_LOCAL_MACHINEX下

"SOFTWARE//Microsoft//Windows//CurrentVersion//Run",//子目录

0L, //必须取零

KEY_WRITE,//KEY_WRITE是STANDARD_RIGHTS_WRITE,KEY_SET_VALUE ,KEY_CREATE _SUB_KEY 访问权限组合

&hKey

);

lsstrcpy((char*)szFilePath,LPCTSTR(m_strExe));

//假如RegOpenKeyEx成功,返回值为ERROR_SUCCESS

if(ERROR_SUCCESS==InRes)

{

//把应用程序路径加入到RUN键下面

InRe=RegSetValueEx(hKey,

LPCTSTR(sKeyName),

0,

REG_Sz);

//假如RegSetValueEx成功,返回值为Error_SUCCESS

if(ERROR_SUCCESS==InRes)

{

AfxMessageBox("已经成功加载了此应用程序!");

RegClosekey(hKey); //关闭hKey

}

else

AfxMessageBox("不能加载此应用程序!");

}

else

{

AfxMessageBox("不能加载此应用程序!");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: