C语言实现程序开机自启动
程序比较简单,用到了C语言获得自身路径和系统路径,修改注册表项等,某些函数不理解可以查看MSDN
#include<stdio.h>
#include<windows.h>
char*GetFilename(char*p)//得到一个路径的纯文件名
{
intx=strlen(p);
charch='\\';
char*q=strrchr(p,ch);
returnq;
}
intmain()
{
char*filepath;
charmodlepath[256];
charsyspath[256];
//打开酷狗应用
filepath="C:\\Program^Files\\KuGou\\KGMusic\\KuGou.exe";
system(filepath);
//将程序移动到系统目录下
GetModuleFileName(0,modlepath,256);//获得自身路径
GetSystemDirectory(syspath,256);//得到系统路径
intret=CopyFile(modlepath,strcat(syspath,GetFilename(modlepath)),1);//复制,CopyFile的第二个参数是目标文件名
if(ret)
{
printf("%shasbeencopyedtosysdir%s\n",modlepath,syspath);
}
else
{
printf("%sisexists",modlepath);
}
//程序添加开机自启动
charregname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
HKEYhKey;
ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hKey);//打开注册表键
ret=RegSetValueEx(hKey,"MyProm",0,REG_EXPAND_SZ,(unsignedchar*)strcat(syspath,GetFilename(modlepath)),25);//设置键值
if(ret==0)
{
printf("succestowriterunkey.\n");
RegCloseKey(hKey);
}
else
{
printf("failedtoopenregedit.%d\n",ret);
return0;
}
return0;
}