基于visual c++之windows核心编程代码分析(28)实现开机自启动

 

我们开发程序的时候,很多时候都希望开机的时候自动运行我们的程序,自动运行程序在注册表里面究竟是如何实现的呢。

我们亲自写代码来实现之

 

 

#include <stdio.h>
#include <windows.h>
int main(void)
{
char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
HKEY hkResult;
int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);

ret=RegSetValueEx(hkResult,"hacker"/* 注册表键名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\hacker.exe",25);
if(ret==0){
  printf("success to write run key\n");
  RegCloseKey(hkResult);
  }
else {
	printf("failed to open regedit.%d\n",ret);
	return 0;
}
char modlepath[256];
char syspath[256];
GetModuleFileName(0,modlepath,256);//取得程序名字
GetSystemDirectory(syspath,256);
ret=CopyFile(modlepath,strcat(syspath,"\\hacker.exe"),1);
if(ret)
{
	printf("%s has been copyed to sys dir %s\n",modlepath,syspath);
}
else printf("%s is exisis",modlepath);
return 0;
}


 

posted on 2012-01-22 04:04  三少爷的剑123  阅读(214)  评论(0编辑  收藏  举报

导航