|
|
|
declare RegQueryValueEx
|
|||
|---|---|---|---|
|
#18+
Помогите! не могу понять почему не работает. вот код 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 ни чего не поступает! Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2005, 15:51 |
|
||
|
declare RegQueryValueEx
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2005, 01:23 |
|
||
|
declare RegQueryValueEx
|
|||
|---|---|---|---|
|
#18+
2 Igor Korolyov Ничего не возвращает. буфер приема так и остаеться. при значений 0 от RegOpenKeyEx. ЗАТО при не 0 значениях RegOpenKeyEx все работает. и работает только в режиме администратор, в пользовательском режиме не хочет. И сразу задаеться вопрос. почему при значениях <> 0 все работает, а при = 0 не работает. Хотя всем известно что вункция правильно сработала без ошибок только если результатом являеться 0!. Немогу понять почему так? GetLastError щас попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2005, 10:24 |
|
||
|
declare RegQueryValueEx
|
|||
|---|---|---|---|
|
#18+
Hi Недоходящий! > работает только в режиме администратор, в пользовательском режиме не хочет Значит нету прав на чтение это части реестра. У меня всё работает как и должно - при этом обе функции возвращают 0 - конечно при чтении существующего значения существующего ключа, и при наличии соответствующих прав. А в декларации функции integer как тип возвращаемого значения всё-же поставь... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2005, 16:16 |
|
||
|
declare RegQueryValueEx
|
|||
|---|---|---|---|
|
#18+
2 Igor Korolyov странно как-то получаеться. ведь есть программы написанные на разных языках и они почему-то работают в этой части реестра. а че ж фоксу нельзя? И еще прикол. Перед считыванием поставить функцию создания какого нить ключа и при этом не прописывая свойства этого ключа. и сразу после этого функция по считыванию срабатывает. Почему это так странно работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 10:28 |
|
||
|
declare RegQueryValueEx
|
|||
|---|---|---|---|
|
#18+
Hi Недоходящий! Ещё раз перечитай что я написал. Проверь ВСЁ что упомянуто - и права, и имя параметра и имена ключей. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2005, 03:48 |
|
||
|
|

start [/forum/topic.php?fid=41&gotonew=1&tid=1592805]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
196ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 509ms |

| 0 / 0 |
