Я написал небольшую программу, которая вставляет значение и соответствующее значение в раздел реестра Windows.автоматически запускать программу при запуске
Программа работает нормально, но не вставляет значение и соответствующее значение.
И еще одна вещь, когда я запускаю prog как администратор, RegSetValueEx() терпит неудачу .. но все же inssert только значение не его данные.
Пожалуйста, помогите найти здесь проблему.
Мой код выглядит следующим образом ..
#define WIN32_LEAN_AND_MEAN
#define WIN32_DEFAULT_LIBS
#ifndef _WIN32_WINNT
#define _WIN32_WINNT (0x0601)
#endif /* _WIN32_WINNT */
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <tchar.h>
#include <unistd.h>
#include <stdbool.h>
#include<string.h>
BOOL InstallRunOnStartup()
{
HKEY key;
long result;
BOOL ret = FALSE;
LPTSTR val=L"12as3d12";
LPTSTR a=L"zzz";
TCHAR szBuf[20];
result = RegOpenKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", NULL, KEY_WRITE | KEY_WOW64_64KEY | KEY_SET_VALUE , &key);
if (result == ERROR_SUCCESS)
{
printf("hi \n");
if (RegSetValueEx(key, a, 0, REG_SZ,(LPBYTE)val, (DWORD)(lstrlen(val)+1) == ERROR_SUCCESS)){
printf("success \n");
ret = TRUE;
}
RegCloseKey(key);
}
return ret;
}
int main()
{
InstallRunOnStartup();
getch();
}
Существует большой ответ размещен [здесь] (https://stackoverflow.com/questions/15913202/add-application-to-startup- реестр). –