修改注册表,自动运行程序

在注册表分支HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run下建立一个字符串String型子键,名字不要重复就可以

,其内容为你想在启动时运行的程序全路径。这样就会自动在启动时运行。
  HKEY   hKEY;   
  CString   KeyTree = /"SOFTWAREMicrosoftWindowsCurrentVersionRun/"; //主鍵   
  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,/"SOFTWAREMicrosoftWindowsCurrentVersionRun/"
         ,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;   
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值