基于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; }