修改注册表,自动运行程序
2007-07-22 09:09
369 查看
在注册表分支HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run下建立一个字符串String型子键,名字不要重复就可以
,其内容为你想在启动时运行的程序全路径。这样就会自动在启动时运行。
HKEY hKEY;
CString KeyTree = /"SOFTWARE////Microsoft////Windows////CurrentVersion////Run/"; //主鍵
CString MainKey=/"KillWindow/"; //子键
CString NewData=/"要启动文件名/"; //子键新值
long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,KeyTree,0,KEY_WRITE,&hKEY));
if(ret0!=ERROR_SUCCESS)
{
AfxMessageBox(/"error/");
return;
}
LPBYTE Data=CStringToLPBYTE(NewData);
DWORD DataSize=NewData.GetLength()+1;
DWORD type=REG_SZ;
long ret1=::RegSetValueEx(hKEY,MainKey,NULL,type,Data,DataSize);
if(ret1!=ERROR_SUCCESS)
{
AfxMessageBox(/"设置自动运行错误!/");
return;
}
delete Data;
::RegCloseKey(hKEY);
为什么要用C语言写注册表?C语言没有这样的函数啊!
int CreateRun(void)//修改注册表,自动运行程序
{
HKEY hKey;
char WinExe[256];//执行文件自己的路径
char xePath[256];
int i;
char *pbuf;
pbuf=GetCommandLine();
strcpy(WinExe,pbuf+1);
for(i=(int)strlen(WinExe);i>=0;i--)
{
if(WinExe==/'/"/')
{
WinExe = 0;
i = -10000;
}
}
// get running path
strcpy(ExePath,WinExe);
for(i=(int)strlen(WinExe);i>=0;i--)
{
if(WinExe==/'/////')
{
ExePath[i+1] = 0;
i = -10000;
}
}
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,/"SOFTWARE////Microsoft////Windows////CurrentVersion////Run/"
,0,KEY_WRITE, &hKey)!=ERROR_SUCCESS)
return -1;
if(RegSetValueEx(hKey,/"Five32/",0,REG_SZ,(const unsigned char *)WinExe,strlen(pval)+1)!=ERROR_SUCCESS)
{
RegCloseKey(hKey);
return -1;
}
RegCloseKey(hKey);
return 0;
}
,其内容为你想在启动时运行的程序全路径。这样就会自动在启动时运行。
HKEY hKEY;
CString KeyTree = /"SOFTWARE////Microsoft////Windows////CurrentVersion////Run/"; //主鍵
CString MainKey=/"KillWindow/"; //子键
CString NewData=/"要启动文件名/"; //子键新值
long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,KeyTree,0,KEY_WRITE,&hKEY));
if(ret0!=ERROR_SUCCESS)
{
AfxMessageBox(/"error/");
return;
}
LPBYTE Data=CStringToLPBYTE(NewData);
DWORD DataSize=NewData.GetLength()+1;
DWORD type=REG_SZ;
long ret1=::RegSetValueEx(hKEY,MainKey,NULL,type,Data,DataSize);
if(ret1!=ERROR_SUCCESS)
{
AfxMessageBox(/"设置自动运行错误!/");
return;
}
delete Data;
::RegCloseKey(hKEY);
为什么要用C语言写注册表?C语言没有这样的函数啊!
int CreateRun(void)//修改注册表,自动运行程序
{
HKEY hKey;
char WinExe[256];//执行文件自己的路径
char xePath[256];
int i;
char *pbuf;
pbuf=GetCommandLine();
strcpy(WinExe,pbuf+1);
for(i=(int)strlen(WinExe);i>=0;i--)
{
if(WinExe==/'/"/')
{
WinExe = 0;
i = -10000;
}
}
// get running path
strcpy(ExePath,WinExe);
for(i=(int)strlen(WinExe);i>=0;i--)
{
if(WinExe==/'/////')
{
ExePath[i+1] = 0;
i = -10000;
}
}
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,/"SOFTWARE////Microsoft////Windows////CurrentVersion////Run/"
,0,KEY_WRITE, &hKey)!=ERROR_SUCCESS)
return -1;
if(RegSetValueEx(hKey,/"Five32/",0,REG_SZ,(const unsigned char *)WinExe,strlen(pval)+1)!=ERROR_SUCCESS)
{
RegCloseKey(hKey);
return -1;
}
RegCloseKey(hKey);
return 0;
}
相关文章推荐
- 通过修改注册表让wince开机自动运行程序,不需要修改内核
- [VB]修改注册表让程序开机自动运行
- 修改注册表使程序自动运行
- java修改windows注册表设置程序自动运行
- 怎样修改注册表,让程序开机自动运行[收藏]
- 页面上有个添加按钮,程序运行成功的,当我添加一条记录后刷新页面,它自动又添加一条,这样怎么修改?
- c#设置软件开机自动运行,修改注册表
- 【rzxt】修改注册表相关键值让失去响应的程序自动关闭
- 玩转VC++实现程序开机运行及注册表修改
- C#设置软件开机自动运行的方法(修改注册表)
- 修改注册表,禁止程序运行!!
- 修改脚本开机自动运行程序
- 通过修改注册表实现程序以管理员身份运行
- 注册表编程VC 使程序开机自动运行
- c#设置软件开机自动运行,修改注册表
- c#设置软件开机自动运行,修改注册表
- 修改注册表,在运行程序后加一个pause;方便查看一闪而过的程序|打开加加 软件简介
- 注册表中关于开机自动运行程序和自动启动服务的是哪几个键?(转)
- 自我复制到系统目录中,并写注册表,使程序开机自动运行
- RRL Protocol修改注册表,在浏览器输入程序参数,运行程序