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>

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我。
- 2 回答
- 0 關注
- 378 瀏覽
添加回答
舉報