标签:windows c++ 注册表 源代码
程序可以读取同目录下的config.ini文件中的配置来实现开机自启动。
config.ini文件地格式实例如下:
[Main]
KeyName = test
ProcessPath = D:\bin\test.exe
其中KeyName字段为写入注册表的表项名称(可以设置为程序名)
ProcessPath为程序的完整路径
程序的完整源代码如下。
regedit函数实现注册表写入,autopen实现开机自启动。
编译后的程序在此下载:程序下载
#include
#include
int regedit(HKEY key, const char* reg_name, const char* key_name, const char* key_value)
{
HKEY hkResult;
int ret=RegOpenKeyEx(key, reg_name, 0, KEY_ALL_ACCESS, &hkResult);
if(ret != 0)
return ret;
ret=RegSetValueEx(hkResult, key_name, 0, REG_EXPAND_SZ, (CONST BYTE*)key_value, 25);
if(ret==0)
{
RegCloseKey(hkResult);
return 0;
}
else
{
return ret;
}
}
int autopen(const char* key_name, const char* process_path)
{
char reg_name[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
return regedit(HKEY_LOCAL_MACHINE, reg_name, key_name, process_path);
}
int main(void)
{
char key_name[100];
char process_path[1000];
GetPrivateProfileStringA("Main", "KeyName", "test", key_name, sizeof(key_name), ".\\config.ini");
GetPrivateProfileStringA("Main", "ProcessPath", "test", process_path, sizeof(process_path), ".\\config.ini");
int ret = autopen(key_name, process_path);
if(ret == 0)
printf("write to register succeed\n");
else
printf("write to register failed\n");
system("pause");
return 0;
}
Windows下通过写注册表的方式实现程序开机自启动,搜素材,soscw.com
Windows下通过写注册表的方式实现程序开机自启动
标签:windows c++ 注册表 源代码
原文地址:http://blog.csdn.net/tobacco5648/article/details/26691471