C语言实现程序开机自启动
更新时间:2016年01月02日 13:53:25 投稿:hebedich
本文给大家分享的是一则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++实现LeetCode(108.将有序数组转为二叉搜索树)
这篇文章主要介绍了C++实现LeetCode(108.将有序数组转为二叉搜索树),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下2021-07-07
Mac OS上搭建Apache+PHP+MySQL开发环境的详细教程
这篇文章主要介绍了Mac OS上搭建Apache+PHP+MySQL开发环境的详细教程,包括常见的PHP连接MySQL失败问题的解决办法,需要的朋友可以参考下2016-01-01


最新评论