#include <windows.h>
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
void test(void)
{
HKEY key;
char dat[300];
DWORD type=REG_SZ;
DWORD size=sizeof(DWORD);
char dbf[400];
char *patch="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
strcpy(dbf,"C:\\test\\test.exe");
if(RegOpenKeyEx(HKEY_CURRENT_USER,patch,NULL,KEY_ALL_ACCESS,&key)==ERROR_SUCCESS)
{
if(RegQueryValueEx(key,"test",NULL,&type,(byte*)&dat,&size)!=ERROR_SUCCESS)
{
cout<<GetLastError();
RegSetValueEx(key,"test",NULL,REG_SZ,(PBYTE)dbf,strlen(dbf));
}
}
}
main()
{
test();
getch();
}
Проблема с автозагрузкой
Только вот споткнулся на RegQueryValueEx оно почему то всегда не возращает ERROR_SUCCESS :( .Тыкал сразу же после этой функции GetLastError, и получил код 126 ,если верить этому http://msdn2.microsoft.com/en-us/library/ms681382.aspx то это значит:"ERROR_MOD_NOT_FOUND The specified module could not be found."(Кто б ещё обьяснил что это за модуль такой)
Код:
Перед выполнением записи в реестр обнуляй статус ошибки, чтобы быть уверенным, что The specified module could not be found именно в этом участке программы а не на 3 килобайта выше.
SetLastError(0); // дальше запись в реестр
P.S. Желание окружающих разбирать твой код прямо пропорционально степени форматированности этого кода.