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; }