亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

你好,請問關于RegCreateKeyEx函數的用法?求解釋!

你好,請問關于RegCreateKeyEx函數的用法?求解釋!

翻閱古今 2021-08-16 14:14:49
就是我想用c語言編寫一個能修改注冊表自動啟動的程序,下面是代碼!!當然是錯的,還有很多地方需要改進??!剛學!郁悶了,總是提示錯誤??!#include <stdio.h>#include <stdlib.h>int main(){int autorun_register(const char *exe_filename);FILE *fp;if((fp=fopen("E:\\應用程序\\kwmusic2010.exe","r"))==NULL){printf("cannot open file\n");exit(0);}autorun_register("E:\\應用程序\\kwmusic2010.exe");system("PAUSE");return 0;}int autorun_register(const char *exe_filename){//修改注冊表,開機啟動int return_value=0;HKEY hroot = HKEY_LOCAL_MACHINE,hkey;const char *subkey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";DWORD dwDisposition;long result=RegCreateKeyEx(hroot,subkey,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hkey,&dwDisposition);if(result==ERROR_SUCCESS){result=RegSetValueEx(hkey,"病毒",0,REG_SZ,(CONST BYTE *)exe_filename,(DWORD)strlen(exe_filename));if(result!=ERROR_SUCCESS)return_value=-1;RegCloseKey(hkey);}else return_value=-1;if(!return_value)printf("開機啟動注冊成功!\n");else printf("開機啟動注冊失敗...\n");return return_value;}幫我修改一下,能改進為將運行的本程序添加到自啟動項更好!
查看完整描述

2 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

BOOL AutoRun()
{
HKEY hKey;
UINT ret=0;
char path[MAX_PATH];
if(ERROR_SUCCESS!=RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&hKey))
return FALSE;

GetModuleFileName(NULL,path,MAX_PATH);
ret=RegSetValueEx(hKey,"病毒",0,REG_SZ,(CONST BYTE*)path,strlen(path));

RegCloseKey(hKey);
return ret==ERROR_SUCCESS;
}

頭文件還要加個#include <windows.h>



查看完整回答
反對 回復 2021-08-23
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

/************************************************************************/
/* 修改注冊表讓某個程序開機時,自動運行 */
/************************************************************************/

#include <windows.h>
#include <stdio.h>

int main()
{
int autorun_register(const char *exe_filename);
FILE *fp;
if((fp=fopen("E:\\TTplayer\\TTplayer.exe","r"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
autorun_register("E:\\TTplayer\\TTplayer.exe");
system("PAUSE");
return 0;
}
int autorun_register(const char *exe_filename)
{
//修改注冊表,開機啟動
int return_value=0;
HKEY hroot = HKEY_LOCAL_MACHINE,hkey;
const char *subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
DWORD dwDisposition;
long result=RegCreateKeyEx(
hroot,
subkey,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hkey,
&dwDisposition
);

if(result==ERROR_SUCCESS)
{
result=RegSetValueEx(
hkey,
"病毒",
0,
REG_SZ,
(CONST BYTE *)exe_filename,
(DWORD)strlen(exe_filename)
);
if(result!=ERROR_SUCCESS)return_value=-1;
RegCloseKey(hkey);
}
else return_value=-1;
if(!return_value)printf("開機啟動注冊成功!\n");
else printf("開機啟動注冊失敗...\n");
return return_value;
}
程序如上,添加我機器上的千千靜聽程序的自動啟動。
你的程序本來就是正確的。
加個
#include <windows.h>
就可以了。
我在我機器上已經運行過了。
不行可以hi我。



查看完整回答
反對 回復 2021-08-23
  • 2 回答
  • 0 關注
  • 378 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號