C語(yǔ)言實(shí)現(xiàn)程序開(kāi)機(jī)自啟動(dòng)
更新時(shí)間:2016年01月02日 13:53:25 投稿:hebedich
本文給大家分享的是一則C語(yǔ)言實(shí)現(xiàn)開(kāi)機(jī)自啟動(dòng)的代碼,主要是通過(guò)C來(lái)獲取程序路徑修改注冊(cè)表項(xiàng)來(lái)實(shí)現(xiàn),有需要的小伙伴可以參考下
程序比較簡(jiǎn)單,用到了C語(yǔ)言獲得自身路徑和系統(tǒng)路徑,修改注冊(cè)表項(xiàng)等,某些函數(shù)不理解可以查看MSDN
#include<stdio.h> #include<windows.h> char *GetFilename(char *p) //得到一個(gè)路徑的純文件名 { int x=strlen(p); char ch='\\'; char *q=strrchr(p,ch); return q; } int main() { char *filepath; char modlepath[256]; char syspath[256]; //打開(kāi)酷狗應(yīng)用 filepath="C:\\Program^ Files\\KuGou\\KGMusic\\KuGou.exe"; system(filepath); //將程序移動(dòng)到系統(tǒng)目錄下 GetModuleFileName(0,modlepath,256); //獲得自身路徑 GetSystemDirectory(syspath,256); //得到系統(tǒng)路徑 int ret=CopyFile(modlepath,strcat(syspath,GetFilename(modlepath)),1);//復(fù)制,CopyFile的第二個(gè)參數(shù)是目標(biāo)文件名 if(ret) { printf("%s has been copyed to sys dir %s\n",modlepath,syspath); } else { printf("%s is exists",modlepath); } //程序添加開(kāi)機(jī)自啟動(dòng) char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run"; HKEY hKey; ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hKey); //打開(kāi)注冊(cè)表鍵 ret=RegSetValueEx(hKey,"MyProm",0,REG_EXPAND_SZ,(unsigned char*)strcat(syspath,GetFilename(modlepath)),25); //設(shè)置鍵值 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; }
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)循環(huán)單鏈表的示例代碼
這篇文章主要給大家詳細(xì)介紹了C語(yǔ)言如何實(shí)現(xiàn)循環(huán)單鏈表,文章通過(guò)代碼示例講解的非常詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定的參考價(jià)值,感興趣的小伙伴跟著小編一起來(lái)看看吧2023-08-08sublime text3搭建配置c語(yǔ)言編譯環(huán)境的詳細(xì)圖解教程(小白級(jí))
這篇文章主要介紹了sublime text3搭建配置c語(yǔ)言編譯環(huán)境,詳細(xì)圖解,小白教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01C++的STL中accumulate函數(shù)的使用方法
這篇文章主要介紹了C++的STL中accumulate的使用方法,accumulate作用是累加求和即自定義類(lèi)型數(shù)據(jù)處理,下文具體的操作方法需要的小伙伴可以參考一下2022-03-03