#include <windows.h>
extern HINSTANCE hApplication;
#define reg_run "Software\\Microsoft\\Windows\\CurrentVersion\\Run"
const char title[]="Your program";
bool AutoRun() { // проверка на автозагрузку
HKEY run = NULL;
bool res = false;
RegOpenKeyEx(HKEY_CURRENT_USER, reg_run, 0, KEY_READ, &run);
if (run) {
res = (RegQueryValueEx(run, title,
0, NULL, NULL, NULL) == ERROR_SUCCESS);
RegCloseKey(run);
}
return res;
}
bool AutoRun(bool set ) { // установка проги в автозагрузку
HKEY run = NULL;
bool res = false;
RegOpenKeyEx(HKEY_CURRENT_USER, reg_run, 0, KEY_WRITE, &run);
if (run) {
if (set ) {
char buff[MAX_PATH];
DWORD len = GetModuleFileName(hApplication, buff, MAX_PATH);
res = (RegSetValueEx(run, title,
0, REG_SZ, (PBYTE)buff, len) == ERROR_SUCCESS);
}
else {
res = (RegDeleteValue(run, title) == ERROR_SUCCESS);
}
RegCloseKey(run);
}
return res;
}
Робота з реестром
Как с помощью Win32 API можно записать что-то в реестр Windows (например, как прописать программу в автозапуск в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run).