陈伟业画:vc++操作注册表实现自启动程序

来源:百度文库 编辑:九乡新闻网 时间:2024/05/02 07:23:04
原)vc++操作注册表实现自启动程序

void CMainFrame::OnRegWrite()
{
// TODO: Add your command handler code here
//定义下面要用到的HEKY
HKEY hkey;
//定义需要启动的程序路径
LPCTSTR strUserValue = "D:\\1.exe";
//创建项
// RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run1",&hkey);
//打开指定项,建议使用RegCreateKey,这样的话,没有这个项目他会自动创建一个Run
RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run1",&hkey);
//两种方式设置值,第一种设置项下的默认键值,第二种则为创建一个新的键
// RegSetValue(hkey,NULL,REG_SZ,"lonely",strlen("lonely"));
RegSetValueEx(hkey,"ange",0,REG_SZ,(CONST BYTE*)strUserValue,strlen(strUserValue)+1);
//关闭hkey句柄
RegCloseKey(hkey);
}

void CMainFrame::OnRegRead()
{
// TODO: Add your command handler code here
/* long qlue;
RegQueryValue(HKEY_LOCAL_MACHINE,"Software\\http://www.baidu.com\\isbx",NULL,&qlue);
char *pbuf = new char[qlue];
RegQueryValue(HKEY_LOCAL_MACHINE,"Software\\http://www.baidu.com\\isbx",pbuf,&qlue);
MessageBox(pbuf);*/

//定义下面要用到的HKEY
     HKEY key;
//要操作注册表首先打开要操作的注册表项
RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&key);
//定义RegQueryValueEx中第四个参数要用到的返回数据类型
DWORD dwType;
//定义一个数组来接收缓冲区中的数据。
char *instal_path[50];
//RegQueryValueEx最后一个参数需要一个参数接收返回数据的大小。
DWORD dwValue;
//获取指定项值
RegQueryValueEx(key,"ange",0,&dwType,(LPBYTE)&instal_path,&dwValue);
//格式化并把该值用窗口弹出
CString cs;
cs.Format("%s",instal_path);
AfxMessageBox(cs);
}