powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / declare RegQueryValueEx
7 сообщений из 7, страница 1 из 1
declare RegQueryValueEx
    #33408925
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите! не могу понять почему не работает.
вот код
REG_SZ = 1
HKEY_CLASSES_ROOT = -2147483648
HKEY_CURRENT_USER = -2147483647
HKEY_LOCAL_MACHINE = -2147483646
HKEY_USERS = -2147483645
security_access_mask = 983103
security_access_mask_set = 2
sub_key_c1 = "Software\ODBC\ODBC.INI\mmm"
buffer_size = 80
api_buffer = SPACE(80)
lnResult = 0
declare RegOpenKeyEx in advapi32.dll integer, string, integer, integer, integer @
declare RegQueryValueEx in advapi32.dll integer, string, integer, integer @, string @, integer @
RegOpenKeyEx(HKEY_CURRENT_USER,sub_key_c1,0,security_access_mask,@lnResult)

*RegOpenKeyEx возращает 0

RegQueryValueEx(lnResult,'LastUser',0,1,@ api_buffer,@ buffer_size)
usname=alltrim(upper(substr(api_buffer,1,buffer_size-1)))
buffer_size = 80
messagebox(usname)
В переменную usname ни чего не поступает! Почему?
...
Рейтинг: 0 / 0
declare RegQueryValueEx
    #33409952
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Недоходящий!

> RegQueryValueEx(lnResult,'LastUser',0,1,@ api_buffer,@ buffer_size)

Что возвращает? Если #0 (кстати для этого надо при декларировании функции
объявлять что возвращаемое значение имеет тип INTEGER) - то используй АПИ
GetLastError чтобы определить что же за ошибка произошла (в файле winerror.h
от сишного компилятора есть перечень всех возможных ошибок, но можно и через
ещё одну АПИ функцию получить "текст" ошибки по её коду) - может быть нету в
этом ключе такого Value, или его тип не REG_SZ, или не хватило прав для
считывания...

> substr(api_buffer,1,buffer_size-1)

IMHO нагляднее LEFT(m.api_buffer, m.buffer_size - 1)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
declare RegQueryValueEx
    #33410336
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Igor Korolyov

Ничего не возвращает. буфер приема так и остаеться. при значений 0 от RegOpenKeyEx. ЗАТО при не 0 значениях RegOpenKeyEx все работает. и работает только в режиме администратор, в пользовательском режиме не хочет. И сразу задаеться вопрос. почему при значениях <> 0 все работает, а при = 0 не работает. Хотя всем известно что вункция правильно сработала без ошибок только если результатом являеться 0!. Немогу понять почему так?
GetLastError щас попробую.
...
Рейтинг: 0 / 0
declare RegQueryValueEx
    #33415377
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Недоходящий!

> работает только в режиме администратор, в пользовательском режиме не хочет

Значит нету прав на чтение это части реестра. У меня всё работает как и
должно - при этом обе функции возвращают 0 - конечно при чтении
существующего значения существующего ключа, и при наличии соответствующих
прав.
А в декларации функции integer как тип возвращаемого значения всё-же
поставь...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
declare RegQueryValueEx
    #33416469
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Igor Korolyov


странно как-то получаеться. ведь есть программы написанные на разных языках и они почему-то работают в этой части реестра. а че ж фоксу нельзя? И еще прикол. Перед считыванием поставить функцию создания какого нить ключа и при этом не прописывая свойства этого ключа. и сразу после этого функция по считыванию срабатывает. Почему это так странно работает?
...
Рейтинг: 0 / 0
declare RegQueryValueEx
    #33428688
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Недоходящий!

Ещё раз перечитай что я написал. Проверь ВСЁ что упомянуто - и права, и имя
параметра и имена ключей.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
declare RegQueryValueEx
    #33429911
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Igor Korolyov
Да, спасибо. перечитал. выставил некие настройки и все заработало.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / declare RegQueryValueEx
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]