【发布时间】:2013-10-25 00:58:49
【问题描述】:
我这样做了:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
HKEY CH;
if(RegCreateKey(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&CH) != 0)
{
printf("Erro - RegCreateKey\n");
system("PAUSE");
return -1;
}
if(RegOpenKey(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&CH) != 0) // Abre a CH "Minha CH"
{
printf("Erro - RegOpenKey\n");
system("PAUSE");
return -1;
}
if(RegSetValueEx(CH,L"PROC",0,REG_SZ,(LPBYTE) L"C:\\pasta1\\pasta2\\txt.txt",200) != 0)
printf("Erro - RegSetValue\n");
RegCloseKey(CH);
printf("\nsucesso !\n");
system("PAUSE");
return 0;
system("PAUSE");
}
现在我想做:
if(key already exist) {
//don't make nothing
} else
Create key
...
我需要做什么功能?因为如果没有,我将创建一个已经存在的密钥。如果我能避免那就太好了。
【问题讨论】:
-
只需致电
RegCreateKeyEx。如果它已经存在,它会打开密钥,如果不存在则创建它。问题解决了吗? -
但是 RegSetValueEx 呢?它会和 RegCreateKey 做同样的事情吗?
-
RegSetValueEx会在不存在的情况下创建一个新值,或者覆盖现有值。 -
好的,如果它没有害处,那么。 . .问题解决了。 . .