C语言如何实现程序开机自启动

来源:爱站网时间:2019-12-01编辑:网友分享
关于程序开机自启动的方法相信有很多小伙伴们都非常清楚的,但是对于一些新手们来说就不是那么简单了,下面我们就一起去看看C语言如何实现程序开机自启动的吧,感兴趣的朋友们一起来参考参考。

关于程序开机自启动的方法相信有很多小伙伴们都非常清楚的,但是对于一些新手们来说就不是那么简单了,下面我们就一起去看看C语言如何实现程序开机自启动的吧,感兴趣的朋友们一起来参考参考。

程序比较简单,用到了C语言获得自身路径和系统路径,修改注册表项等,某些函数不理解可以查看MSDN

#include<stdio.h>
#include<windows.h>

char *GetFilename(char *p) //得到一个路径的纯文件名
{
  int x=strlen(p);
  char ch='\\';
  char *q=strrchr(p,ch);
  return q;
}

int main()
{
  char *filepath;
  char modlepath[256];
  char syspath[256];

  //打开酷狗应用
  filepath="C:\\Program^ Files\\KuGou\\KGMusic\\KuGou.exe"; 
  system(filepath);

  //将程序移动到系统目录下

  GetModuleFileName(0,modlepath,256); //获得自身路径
  GetSystemDirectory(syspath,256); //得到系统路径

  int ret=CopyFile(modlepath,strcat(syspath,GetFilename(modlepath)),1);//复制,CopyFile的第二个参数是目标文件名
  if(ret)
  {
    printf("%s has been copyed to sys dir %s\n",modlepath,syspath);
  }
  else
  {
    printf("%s is exists",modlepath);
  }

  //程序添加开机自启动
  char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
  HKEY hKey;
  ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hKey);    //打开注册表键
  ret=RegSetValueEx(hKey,"MyProm",0,REG_EXPAND_SZ,(unsigned char*)strcat(syspath,GetFilename(modlepath)),25); //设置键值

  if(ret==0)
  {
    printf("succes to write run key.\n");
    RegCloseKey(hKey);
  }
  else
  {
    printf("failed to open regedit.%d\n",ret);
    return 0;
  }
  
  return 0;
}

上文就是关于C语言如何实现程序开机自启动的内容,这个方法主要是通过C来获取程序路径修改注册表项来实现,很简单。

上一篇:C++实现链式栈的代码

下一篇:C语言画圣诞树的方法

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载