использование реестра для запуска прог при запуске - PullRequest
0 голосов
/ 11 сентября 2011

я пытаюсь запустить код на c ++, что приведет к запуску файла .exe при запуске с использованием реестра ... но проблема в том, что результаты кода не отображаются без ошибок ... я скомпилировал код в devcpp... код -

void createkey(char *path)
{
int reg;
HKEY hkey,Hkey1;
DWORD ptr;

reg=RegOpenKeyEx(HKEY_LOCAL_MACHINE,TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"),0,KEY_SET_VALUE,&hkey);

if(reg=ERROR_SUCCESS)  
   cout<<"success"<<endl;
else 
   cout<<"failure"; //(a)

cout<<reg<<endl;  //(b)

if(reg==0)
{
    RegSetValueEx(hkey,TEXT("key"),0,REG_SZ,(BYTE*)path,strlen(path));
}
}

при ошибке командной строки, и 0 печатается в результате (a) и (b) ... (не знаю как, поскольку эти два означают совершенно противоположные вещи).... путь char *, переданный regsetvalueex, был "c: /Dev-Cpp/bin/Untitled2.exe" ... я уверен, что функции не работают, так как ключ не отображается в ключе запуска (я проверял с помощью regedit) ...

Ответы [ 2 ]

2 голосов
/ 11 сентября 2011
if(reg=ERROR_SUCCESS) 

Это задание, вам нужно использовать оператор ==. Об этом предупреждают большинство современных компиляторов, обязательно обновите свой. Возможно, вы получили ошибку «Отказано в доступе», вы не можете записать в HKLM \ Software без повышения прав.

0 голосов
/ 11 сентября 2011

Обычные пользователи не имеют права на запись в HKLM.Вам нужно запустить этот процесс с повышенными правами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...