C语言实现程序开机自启动
程序比较简单,用到了C语言获得自身路径和系统路径,修改注册表项等,某些函数不理解可以查看MSDN
#include
#include
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;
}
相关阅读:
Node.js事件驱动
jQuery+json实现的简易Ajax调用实例
WordPress中重置文章循环的rewind_posts()函数讲解
原生js页面滚动延迟加载图片
ADO.NET无连接模式的详细介绍
HTML5标签嵌套规则详解【必看】
js在IE与firefox的差异集锦
详解iOS应用UI开发中的九宫格坐标计算与字典转换模型
从MySQL 5.5迁移到Mariadb 10.1.14所遇到的问题
Mysql表的七种类型详细介绍
Android隐藏标题状态栏的方法
Mysql中的事务是什么如何使用
如何禁止XP系统IE浏览器“你的浏览器已升级”弹出窗口?
纯html+css制作三级下拉菜单