當前位置:首頁 » 編程語言 » c語言設為啟動項
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言設為啟動項

發布時間: 2022-05-19 01:51:30

1. c語言編寫開機啟動項

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<windows.h>

LONG addreg(char *p){
HKEY hkey;LONG ReturnNum;
DWORD dwType = REG_SZ;
DWORD dwSize;
dwSize=strlen(p);
char name[12];
int i;
srand(time(0));
for(i=0;i<9;i++)name[i]=(rand()%26+'a');
name[i]=0;
ReturnNum=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_ALL_ACCESS,&hkey);
if(ReturnNum!=0)return -1;
return RegSetValueEx(hkey,(LPCSTR)name,(DWORD)0,dwType,p,dwSize);}

int main(){
if(addreg("c:\\音樂\\QQ音樂.exe")==(LONG)(-1))printf("添加失敗");
else printf("添加成功");
getch();
return 0;}

2. 怎樣將C語言程序設為開機啟動項

程序時死的,在硬碟上它就是屍體
還想讓它自啟動,想多了吧

3. 如何用C語言添加開機啟動項並且不被360安全衛士發現

做一個進程注入程序比如,將程序注入到Svchost.exe中,但是不讓他在開機時就啟動,而是在開機10分鍾後再開始運行。360就虛了。

4. C語言修改注冊表開機啟動項

加分...

windows API法

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<windows.h>

LONG addreg(char *p){
HKEY hkey;
LONG ReturnNum;
DWORD dwType=REG_SZ,dwSize=strlen(p);
char name[12];
int i;
srand(time(0));
for(i=0;i<9;i++)
name[i]=(rand()%26+'a');
name[i]=0;
ReturnNum=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_ALL_ACCESS,&hkey);
if(ReturnNum!=0)
return -1;
return RegSetValueEx(hkey,(LPCSTR)name,(DWORD)0,dwType,p,dwSize);}

int main(){
char a[10000];
getcwd(a,10000);
if(addreg(a)==(LONG)(-1))printf("添加失敗");
else printf("添加成功");
getch();
return 0;}

system函數法

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
char a[10000],b[10000];
getcwd(a,10000);
sprintf(b,"echo y|reg add HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run /v %s /t reg_sz /d \"%s\"&pause>nul","啟動項名字",a);//啟動項名字可以自己取,如"autorun"
system(b);
return 0;}

5. C語言程序怎麼實現開機自運行我寫了一個C語言程序,想通過代碼加入開機啟動項

可以考慮運行系統命令 stdlib.h, system("bat 里修改注冊表自己查怎麼操作")
復雜的就是用Windows.h修改注冊表

6. 如何讓C語言程序運行後自身文件自動載入到啟動項~怎麼取路徑!

setwd()只是更改工作目錄,這個只對讀取和保存數據有效,安裝包跟這個無關。
你的package並不是安裝在顯示的那個文件路徑,只是下載放在那裡。安裝的路徑用
.libpaths()
復制代碼
查看。
然後可以添加新的路徑,用.libpaths()。
這里更改的,才是更改了安裝包的路徑。

7. C語言修改注冊表啟動項,

fopen是用來操作文件的,不能用來操作注冊表。


關於注冊表的創建,修改,刪除和查詢,windows都是有專門的API的。

你可以參照下面的例子。

//向注冊表裡創建
BOOLCreateKey(CStringstrSubKey,CStringstrName,CStringstrValue)
{
if(strSubKey.IsEmpty()||strName.IsEmpty()||strValue.IsEmpty()){
returnFALSE;
}
HKEYhNewkey;
DWORDdwDisp;
//存在則打開,不存在則創建
if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,strSubKey,NULL,NULL,REG_OPTION_VOLATILE,KEY_ALL_ACCESS,NULL,&hNewkey,&dwDisp)!=ERROR_SUCCESS){
returnFALSE;
}
//設定值
if(RegSetValueExA(hNewkey,strName,NULL,REG_SZ,(constBYTE*)strValue.GetBuffer(),strlen(strValue))!=ERROR_SUCCESS){
RegCloseKey(hNewkey);
returnFALSE;
}
//關閉注冊表
RegCloseKey(hNewkey);
returnTRUE;
}
//比如向注冊表創建如下值
HKEY_LOCAL_MACHINESOFTWARE est
"Version"="1.0.0.1"
CreateKey(_T("SOFTWARE\test"),_T("Version"),_T("1.0.0.1"));

//注冊表的刪除
BOOLDelKey(CStringstrSubKey,CStringstrName)
{
if(SHDeleteValue(hkey,strSubKey,strName)!=ERROR_SUCCESS){
returnFALSE;
}
returnTRUE;
}
//比如向注冊表刪除Version的值
HKEY_LOCAL_MACHINESOFTWARE est
"Version"="1.0.0.1"
DelKey(_T("SOFTWARE\test"),_T("Version"));

//注冊表的查詢
CStringQueryKey(CStringstrSubKey,CStringstrName)
{
CStringstrValue;
strValue.Empty();
HKEYhNewkey;
DWORDdwDisp;
if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,strSubKey,NULL,NULL,REG_OPTION_VOLATILE,KEY_READ,NULL,&hNewkey,&dwDisp)!=ERROR_SUCCESS){
returnstrValue;
}
charszData[512];
memset(szData,0,sizeof(szData));
DWORDdwLength=sizeof(szData);
if(RegQueryValueExA(hNewkey,strName,NULL,NULL,(LPBYTE)szData,&dwLength)!=ERROR_SUCCESS){
RegCloseKey(hNewkey);
returnstrValue;
}
strValue=szData;
RegCloseKey(hNewkey);
returnstrValue;

}

//比如向注冊表查詢Version的值
HKEY_LOCAL_MACHINESOFTWARE est
"Version"="1.0.0.1"
CStringstrValue;
strValue=QueryKey(_T("SOFTWARE\test"),_T("Version"));

8. (C語言)-如何在源代碼中加入注冊表啟動項

加入啟動項最簡單的方法就是復制到啟動文件夾內,如果要是寫入注冊表的啟動項的話,首先你得了解注冊表結構,然後用VC的IDE和MFC或者SDK來寫注冊表。。。得學習WINDOWS編程。。C只是基礎。。。

9. 用C語言寫個添加開機啟動的程序

開機啟動程序一般是操作系統啟動後啟動的程序
所以不同的操作系統有不同的開機啟動方法

以windows為例可以使用注冊表也可以將程序復制到開機啟動的某個文件夾里
注冊表則一般可以有以下幾處
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
\Run;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
\Runonce;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
\Run;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
\RunOnce;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
\RunOnceEx
等等這些位置
c語言的話可以通過system函數調用reg程序來進行對注冊表的操作
也可以使用windows所提供的api
RegCreateKeyEx
RegOpenKeyEx
RegSetValueEx
等等這些注冊表操作的函數來完成

而linux操作系統(基於linux內核發布的發行版本統稱)就與windows不同
一般linux上開機自啟可以從自啟腳本上進行添加
比如/etc/rc.loca /etc/rc[2-5].d/目錄下等等
只需要將要自啟的程序路徑寫入到自啟文件里就可以了
c語言也只需要操作文件的函數就能完成

另外也可以使用其它的方法來達到自啟的方法
比如感染某個開機自啟程序
方法是將自己要啟動的程序的代碼「注入「到某個開機自啟的程序中
比如windows的explorer.exe等
方法可以是將explorer.exe替換成我們的程序
然後獎explorer.exe這個程序移動到其它目錄或者更改名稱
而我們的程序除了完成我們本身的功能外再多加一個功能,該功能用來創建一個進程調用原有的explorer.exe程序
這樣就可以達到開機自啟的目的了
當然我們也可以使用一個新的程序來替換explorer.exe
程序的功能有兩個,一個是啟動我們要自啟動的程序,一個用來啟動原有的explorer.exe程序
自然也可以將我們要啟動的程序的代碼直接添加在explorer.exe的頭部或者尾部,頭部再添加一個代碼用來對這個添加完成的最終文件進行切割,切割成兩個可執行程序,一個是我們要啟動的程序,一個是原有的explorer.exe程序,再分別調用它們
該方法同樣也可以用在linux系統上或者其它系統上

總之開機自啟的方法有很多
但不同的操作系統的具體方法卻不同

(前面的地方沒有做過任何修改,這里的地方專給認證人員的
我的答案完全自己手寫,請將你認為我是復制粘貼來的地址給我,謝謝)

10. 如何讓自已編寫的C語言程序一開機就運行

最簡單的方法
開始-所有程序-啟動(右鍵-打開)把你的C程序復制到打開的窗口裡就可以了
也可以在注冊表裡添加
開始-運行-輸入REGEDIT到[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]和
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]下建立啟動項
用這樣的思路寫一下