我寫了一個小程序,它將值和相應的值插入到Windows註冊表項中。啓動時自動運行程序
程序工作正常,但沒有插入值及其相應的值。
還有一件事,當我以管理員身份運行prog時RegSetValueEx()失敗..但仍只插入值而不是其數據。
請幫助找出問題在這裏。
我的代碼如下..
#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-註冊表)。 –