给你一个参考,
成都创新互联长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为芜湖企业提供专业的网站制作、网站建设,芜湖网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
这个是往注册表的开机启动项里添加开机启动的,(比如qq),只给你主要代码。这个你可以百度,注册表操作函数就那些,百度下,再看下msdn就会了》》
hkey
hkey;
tchar
childkey[256]=text("software\\microsoft\\windows\\currentversion\\run");
tchar
keyvalue[256]=text("c:\\program
files\\tencent\\qq\\bin\\qq.exe");
tchar
keyname[256]="qq";
if(error_success!=regopenkeyex(hkey_local_machine,childkey,0,key_create_sub_key,hkey))
{
messagebox(null,text("failed
to
open
the
key
..."),text("failed!!!"),mb_ok);
}
if(error_success==regsetvalue(hkey_local_machine,childkey,reg_sz,keyvalue,strlen(keyvalue)))
{
messagebox(null,text("sucess
to
write
a
value
into
the
currentversion
.
"),text("sucess!!!"),mb_ok);
}
regclosekey(hkey);
希望对您有所帮助........
RegSetValueEx(Heky,"……",0,REG_SZ,(CONST BYTE*)message,sizeof(message));
//修改如上;
void WriteReg()
{
//test1:在根结点上创建子键
CString strSubKey= "MySubKey";
HKEY hkey1, hkey2;
long lrt, lRtVal;
DWORD dwdisposition= REG_CREATED_NEW_KEY;
if( ERROR_SUCCESS == RegCreateKeyEx( HKEY_CURRENT_USER, strSubKey, 0, NULL, 0, KEY_CREATE_SUB_KEY | KEY_SET_VALUE, NULL, hkey1, dwdisposition ) )
//注:KEY_CREATE_SUB_KEY | KEY_SET_VALUE标志分别用于后面创建子键,后创建键值项, {
//test2:在刚创建的子键(MySubKey)下再创建子键( MySubSubKey)
lrt = RegCreateKeyEx( hkey1, "MySubSubKey", 0, NULL, 0, KEY_CREATE_SUB_KEY | KEY_SET_VALUE, NULL, hkey2, dwdisposition );
//test3:在第一步创建的子键MySubKey下增加键值项
CString strValue="value of the MySubKey's valueItem";
lRtVal= RegSetValueEx( hkey1, "valItem1", 0, REG_SZ, (const byte *)(LPCTSTR)strValue , strValue.GetLength() + 1 );
//test4:在MySubSubKey下创建键值项
if( lrt == ERROR_SUCCESS )
{
strValue="value of the MySubSubKey's valueItem";
lRtVal= RegSetValueEx( hkey2, "valItem1", 0, REG_SZ, (const byte *)(LPCTSTR)strValue , strValue.GetLength() + 1 );
}
}
}
二,读注册表, 函数:RegOpenKeyEx, RegQueryValueEx
void ReadReg()
{
//test1,读取MySubSubKey下的valItem1值
CString strSubkey= "MySubKey\\MySubSubKey";
HKEY hKey;
char szValue[100]={0};
if( ERROR_SUCCESS == RegOpenKeyEx( HKEY_CURRENT_USER, strSubkey, 0, KEY_QUERY_VALUE, hKey ) )
{
DWORD dwType= REG_SZ;
unsigned long nSize= sizeof(szValue) - 1;
if( ERROR_SUCCESS == RegQueryValueEx( hKey, "valItem1", NULL, dwType, (byte *)szValue, nSize ) )
{
int a=0;
}
}
}
读写注册表要注意访问标志,常用的有:
1,可增加子键: KEY_CREATE_SUB_EY
2. 可增加键值项:KEY_SET_VALUE
3.可查询键值项:KEY_QUERY_VALUE
要调用Windows API的RegOpenKeyEx(), RegSetValueEx(), RegSetValueEx()等函数。首先要确认你的C编译器支持调用Windows API.
举例:
要自动运行"D:\Myprog\MyProgram.exe", 修改注册表,在
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
中加一项:
RunMyProg="D:\Myprog\MyProgram.exe"
#include windows.h
static char subkey[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
static char vname[] = "RunMyProg";
static char exefile[] = "D:\\Myprog\\MyProgram.exe";
ULONG dType = REG_SZ, len = 0;
HKEY hKey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,subkey,0,KEY_SET_VALUE|KEY_QUERY_VALUE,hKey);//打开。
if (RegQueryValueEx(hKey, vname, 0, dType, NULL, len)) { //如果没有RunMyProg,
RegSetValueEx(hKey, vname, 0, REG_SZ, exefile, strlen(exefile)+1); //就加上。
}
RegCloseKey(hKey); //关闭。
要对注册表编程,可以。
要用C对注册表编程,可以。
注册表是 Windows 平台下的东西,要使用 Windows 平台下提供的 API 才是正道,
不是有人用楼主的方法实现了么?
—— 这不是不行,而是为什么 Windows 下那么容易实现的东西,非要搬个 DOS 出来?
这不是一种技术停滞的表现么?DOS平台现今已经被放弃,在DOS下学习一门语言是不错的,因为它没 Windows 那么复杂,若用 Windows 的话很多人在一开始就可能不适应,几千个 API 也是妨碍初学者进步的一个主要因素,对于语言而言是不必要的,所以,学习语言在 DOS 是容易的,而——开发总得针对平台,Windows 的东西让它归 Windows,DOS 下的东西归 DOS,平台不同使用的库也不同,没必要抱着旧的不放,编程就要贪新厌旧,旧的当然要经历过才知道什么叫新的。
也就是调用Windows平台下提供的API一般都用VC
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款