加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 05:46:21 所属栏目:百科 来源:网络整理
导读:程序比较简单,用到了C语言获得自身路径和系统路径,修改注册表项等,某些函数不理解可以查看MSDN #includestdio.h#includewindows.hchar *GetFilename(char *p) //得到一个路径的纯文件名{ int x=strlen(p); char ch=''; char *q=strrchr(p,ch); return q

程序比较简单,用到了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^ FilesKuGouKGMusicKuGou.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 %sn",syspath);
  }
  else
  {
    printf("%s is exists",modlepath);
  }

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读