Перейти до вмісту

RegEnumValue


В темі одне повідомлення

#1 te_morituri

    Ледар

  • Користувачі
  • PipPip
  • 14 повідомлень

Відправлено 18.10.2009 – 16:57

  • 1
Привіт всім хто читає цей брєд)
проблема: функція RegEnumValue ( перебирає параметри ключа по індексу і присвоює імя, тип, даних, самі данні змінним) не працює ( не повертає значення ERROR_SUCCESS) все кажись правильно.
Подивіться пліз програм код і скажіть що не так. Сенкс))
всі змінні, параметри є глобальними
char lpValueName[80];
  LPDWORD lpcValueName;
  LPDWORD lpType;
  LPBYTE lpData;
  LPDWORD lpcbData;
/*****/
if(ERROR_SUCCESS== RegOpenKeyEx(HlpszKeys,szBuffer1,0,KEY_QUERY_VALUE,&hKey3v))//параметр KEY_QUERY_VALUE
if(ERROR_SUCCESS==RegQueryInfoKey(hKey3v,
cClass,
&dwSize,
NULL,
&dwSubKeys,
&dwMaxLength,
dwMaxClass,
&dwValues,
&dwMaxValue,
&dwMaxData,
dwSec,
&ftFileTime))
for(i = 0;i<(int)dwValues; i++)
{
if(ERROR_SUCCESS==RegEnumValue(hKey3v, (int) i,lpValueName, lpcValueName,0,lpType,lpData,lpcbData))
MessageBox(NULL,"прочиталось","значення",MB_OK|MB_ICONASTERISK);
}

Повідомлення відредагував te_morituri: 18.10.2009 – 17:04


#2 te_morituri

    Ледар

  • Користувачі
  • PipPip
  • 14 повідомлень

Відправлено 20.10.2009 – 20:28

char lpValueName[80];
 DWORD lpcValueName[127];
  DWORD lpType;
 BYTE lpData[80];
  DWORD lpcbData;
/*****/

for(i = 0;i<(int)dwValues; i++)
{
lpcValueName=dwMaxValue;//размер имени=максиммальному размеру
lpcbData=dwMaxData;//размер данных=махРазмер даних

if(ERROR_SUCCESS==RegEnumValue(hKey3v, (int) i,lpValueName, &lpcValueName,0, &lpType, &lpData[0], &lpcbData))
MessageBox(NULL,"прочиталось","значення",MB_OK|MB_ICONASTERISK);
}

ось так потрібно, але не всі ключі читаються-і чому? залишається питанням...
  • 0



Кількість користувачів, що читають цю тему: 1

0 користувачів, 1 гостей, 0 анонімних


Магазин кубиков Рубика Cubes.in.ua