C語言實現(xiàn)程序開機自啟動
更新時間:2016年01月02日 13:53:25 投稿:hebedich
本文給大家分享的是一則C語言實現(xiàn)開機自啟動的代碼,主要是通過C來獲取程序路徑修改注冊表項來實現(xiàn),有需要的小伙伴可以參考下
程序比較簡單,用到了C語言獲得自身路徑和系統(tǒng)路徑,修改注冊表項等,某些函數(shù)不理解可以查看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);
//將程序移動到系統(tǒng)目錄下
GetModuleFileName(0,modlepath,256); //獲得自身路徑
GetSystemDirectory(syspath,256); //得到系統(tǒng)路徑
int ret=CopyFile(modlepath,strcat(syspath,GetFilename(modlepath)),1);//復制,CopyFile的第二個參數(shù)是目標文件名
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;
}
您可能感興趣的文章:
相關文章
sublime text3搭建配置c語言編譯環(huán)境的詳細圖解教程(小白級)
這篇文章主要介紹了sublime text3搭建配置c語言編譯環(huán)境,詳細圖解,小白教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-01-01
C++的STL中accumulate函數(shù)的使用方法
這篇文章主要介紹了C++的STL中accumulate的使用方法,accumulate作用是累加求和即自定義類型數(shù)據(jù)處理,下文具體的操作方法需要的小伙伴可以參考一下2022-03-03

