ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Узнать существует ли запись в реестре
  #1  
Старый 02.06.2007, 22:54
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию Узнать существует ли запись в реестре

Проблема моя сотоит в том что вот этот код не работает
Код:
#include <windows.h>
#include <stdio.h>
#include <conio.h>
main()
{
HKEY hKey;char szProductType[32]; DWORD dwBufLen=32;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_EXECUTE,&hKey);
if(RegQueryValueEx(hKey,"test",NULL,NULL,szProductType,&dwBufLen) != ERROR_SUCCESS)
{
printf("no k \n");
getch();
}
}
RegQueryValueEx даже если есть запись с нужным именем невозращает ERROR_SUCCESS.Где я мог допустить ляп?
 
Ответить с цитированием

  #2  
Старый 02.06.2007, 23:06
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

LONG RegQueryValueEx(

HKEY hKey, // handle of key to query
LPTSTR lpValueName, // address of name of value to query
LPDWORD lpReserved, // reserved
LPDWORD lpType, // address of buffer for value type
LPBYTE lpData, // address of data buffer
LPDWORD lpcbData // address of data buffer size
);

у тебя LPDWORD lpType нулю равен
 
Ответить с цитированием

  #3  
Старый 03.06.2007, 00:57
da_ff
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
Провел на форуме:
413927

Репутация: 71
Отправить сообщение для da_ff с помощью ICQ
По умолчанию

а ты проверь прежде указатель на ключ получен или нет
замени Key_execute на Key_all_access
 
Ответить с цитированием

  #4  
Старый 03.06.2007, 02:02
inSa(Ne)rd
Участник форума
Регистрация: 14.03.2005
Сообщений: 267
Провел на форуме:
2827464

Репутация: 545
По умолчанию

и указывай Reg_sz как тип данных если читается строка
 
Ответить с цитированием

  #5  
Старый 03.06.2007, 13:49
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

В Msdn примеры были вроде же. И там есть описание каждого параметра
 
Ответить с цитированием

  #6  
Старый 03.06.2007, 13:52
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию

Переписал вот так
Код:
#include <windows.h>
#include <stdio.h>
#include <conio.h>
main()
{
HKEY hKey;char szProductType[32]; DWORD dwBufLen=32;char ktp[]="REG_SZ";
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_ALL_ACCESS,&hKey);
if(RegQueryValueEx(hKey,"mt",NULL,(LPDWORD)ktp,szProductType,&dwBufLen) != ERROR_SUCCESS)
{
printf("no k \n");
getch();
}
}
Непомогло.Может кто нибудь даст ссылку на рабочий пример?
 
Ответить с цитированием

  #7  
Старый 03.06.2007, 14:48
tclover
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме:
9751364

Репутация: 1847


По умолчанию

Код:
RegQueryValueEx(hKey,"mt",NULL,(LPDWORD)ktp,(LPBYTE)szProductType,&dwBufLen)
 
Ответить с цитированием

  #8  
Старый 03.06.2007, 15:07
Xserg
Участник форума
Регистрация: 09.12.2006
Сообщений: 135
Провел на форуме:
426226

Репутация: 726
По умолчанию

У меня работает
Код:
HKEY Key;
char szProductType[132];
DWORD dwBufLen=132;
DWORD ktp =REG_SZ; // так  работает
RegOpenKeyExA(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_ALL_ACCESS,&Key);
if(RegQueryValueExA(Key,"kav",NULL,&ktp,(LPBYTE)szProductType,&dwBufLen) != ERROR_SUCCESS)
   {printf("no k \n");} else {printf(szProductType);}
getch();
return 0;
 
Ответить с цитированием

  #9  
Старый 03.06.2007, 15:18
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Цитата:
,(LPDWORD)ktp
о, да! =\

DWORD dwValueType = REG_SZ;
RegQueryValueExA( ... &dwValueType... )
 
Ответить с цитированием

  #10  
Старый 03.06.2007, 15:39
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

char ktp[]="REG_SZ";

я, б*я, говорил что надо указать константу REG_SZ а не указатель на строку "REG_SZ"
эх вы молодежь, все это от нечитания msdn.

Последний раз редактировалось begin end; 05.06.2007 в 18:30.. Причина: *
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IPB 2.1.6. логин и ник разные. Как узнать в этом случае логин по нику? Skiba Форумы 8 18.01.2007 00:58
Руководство по «тонкой» настройке Firefox 2 SK | Heaton Статьи 0 09.11.2006 08:07
Запись про античат в стиле рок Lany Болталка 27 10.10.2006 23:19
Как узнать пароль на форуме phpBB <=2.0.10 ? Evgeny Форумы 6 26.11.2004 22:10



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ