代码如下:
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("不能加载此应用程序!");
}
}