REG_BINARY

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

REG_BINARY

Сообщение kirrun » 18.04.2005 (Пн) 15:03

Помогите достать REG_BINARY, плиз! Обычными функциями достаются только два первых байта.

И не надо посылать меня в 5 букв. Я там уже был.
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 18.04.2005 (Пн) 15:18

у меня аналогичная проблемма, только мне надо ещё и поставить

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.04.2005 (Пн) 15:22

Вот кусок кода - поймете куда и как применить?

Код: Выделить всё
Public Function RegQueryByteValue(ByVal hKey As Long, ByVal strValueName As String, mByteArr() As Byte) As Boolean
    Const REG_SZ = 1
    Dim ByteArr() As Byte
    Dim lResult As Long, lValueType As Long, strBuf As String, lDataBufSize As Long
    'retrieve nformation about the key
    lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize)
    If lResult = 0 Then
        If lValueType = REG_BINARY Then
            'Create a buffer
            ReDim ByteArr(lDataBufSize - 1)
            'retrieve the key's content
            lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByteArr(0), lDataBufSize)
            If lResult = 0 Then
                mByteArr = ByteArr
                RegQueryByteValue = True
            End If
        End If
    End If
End Function
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 18.04.2005 (Пн) 15:24

Sirik писал(а):у меня аналогичная проблемма, только мне надо ещё и поставить


Поставить как нефиг. Я уже разобрался. Целый вечер писал функцию для настроек Радмина (как я понимаю тебе для него надо? ;))
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 18.04.2005 (Пн) 15:43

Andrey Fedorov писал(а):Вот кусок кода - поймете куда и как применить?

Код: Выделить всё
Public Function RegQueryByteValue(ByVal hKey As Long, ByVal strValueName As String, mByteArr() As Byte) As Boolean
    Const REG_SZ = 1
    Dim ByteArr() As Byte
    Dim lResult As Long, lValueType As Long, strBuf As String, lDataBufSize As Long
    'retrieve nformation about the key
    lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize)
    If lResult = 0 Then
        If lValueType = REG_BINARY Then
            'Create a buffer
            ReDim ByteArr(lDataBufSize - 1)
            'retrieve the key's content
            lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByteArr(0), lDataBufSize)
            If lResult = 0 Then
                mByteArr = ByteArr
                RegQueryByteValue = True
            End If
        End If
    End If
End Function


хм... у меня что-то не работает... возвращает "?"

Там какая-то трабла в объявлении массива mByteArr()... Я, видимо не очень понял как это работает. Напиши плиз пример вызова.
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.04.2005 (Пн) 16:05

kirrun писал(а):Напиши плиз пример вызова.


Код: Выделить всё
Dim mByteArr() As Byte
...
If ERROR_SUCCESS = RegOpenKey(k, sKey, iKey) Then
    If RegQueryByteValue(iKey, ss, mByteArr) Then
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 18.04.2005 (Пн) 16:21

Неа. Не работает. Я в массивах не очень рублю.. посмотри сам че там не так.
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 18.04.2005 (Пн) 16:21

нет, мне надо включать/выключать прокси сервер в IE

так как узнать/поставить если тип=REG_DWORD, сорри но это не бинари ???

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.04.2005 (Пн) 16:23

kirrun писал(а):Неа. Не работает. Я в массивах не очень рублю.. посмотри сам че там не так.


А мне-то что смотреть - у меня все работает.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 18.04.2005 (Пн) 16:26

Sirik писал(а):нет, мне надо включать/выключать прокси сервер в IE

так как узнать/поставить если тип=REG_DWORD, сорри но это не бинари ???


Нет. REG_DWORD и REG_BINARY - разнык штуки. с получением\установкой REG_DWORD проблем нету.

Щас поищу примерчики...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 18.04.2005 (Пн) 16:33

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 18.04.2005 (Пн) 17:04

Всем спасибо - все свободны! Совсем забыл, что на allapi именно то, что мне нужно в примерах.. :oops:
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 18.04.2005 (Пн) 18:30

Так все... я пшел вешацца...

ЛЮДИ!!! ВЫРУЧАЙТЕ!!! Теперь помогите поставить REG_BINARY...

Способ с allapi умеет ставить значения до 255 (тк конвертирует в byte).

В ПОИСК НЕ ПОСЫЛАТЬ!!!
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.04.2005 (Вт) 0:47

Оба-на... А тебе какие байты нужны, от 1 до 1000 что ли? :shock:
Изображение

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 19.04.2005 (Вт) 14:01

=)

Да нет. Мне нужно например поставить число 256.
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.04.2005 (Вт) 14:24

Ну это уже два байта. Проблема в чём? :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 19.04.2005 (Вт) 14:33

В том что не пихаются! В примере на allip шспользуется Cbyte(), а если ковертировать в 2 байта - TypeMsimatch
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.04.2005 (Вт) 14:39

Понятие "байтовый массив" тебе знакомо?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 19.04.2005 (Вт) 14:42

ЭЭЭЭ.. Мне очень стыдно, но я об этом не подумал :oops: :oops: :oops:
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 19.04.2005 (Вт) 14:49

хм... я в массивах вобще не очень рублю... :(

Напиши как можно постаить число 1234 в байтовый массив...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.04.2005 (Вт) 15:10

Слушай, а ты уверен, что тебе надо binary, а не dword?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 19.04.2005 (Вт) 15:38

GSerg писал(а):Слушай, а ты уверен, что тебе надо binary, а не dword?


Хы... ну и вопросы... Естественно, уверен =)

Задача такая: проге через винсок передается число, а она его пишет в реестр как REG_BINARY
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.04.2005 (Вт) 15:45

Хы... ну и ответы. Дык ЧИСЛО - это DWORD. Если оно не больше, чем CDbl(&h7FFFFFFF&)*2

А binary - массив двоичных данных произвольной длины.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 19.04.2005 (Вт) 15:53

Да я понимаю! Но с другими прогами не спорят! Она свои настройки хранит как REG_BINARY и я ничего не могу с этим поделать! Хочет она чтоб номер порта был REG_BINARY и все! На мой взгляд - ваще записал все в REG_SZ и не мучайся.. так ей подавай бинарные...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.04.2005 (Вт) 16:09

Ладно, чтобы не грузить тебя всякими lset...

redim b(1 to 4)
copymemory b(lbound(b)),value,4
'сохраняем b
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 19.04.2005 (Вт) 16:32

Блин... Ну сегодня у меня день тупости...

Помоги плиз! Есть такая функция:

Код: Выделить всё
Public Function RegSet(ByVal Name As String, ByVal value As Byte)
Dim path
Dim if_error
RegOpenKey HKEY_LOCAL_MACHINE, "System\RAdmin\v2.0\Server\Parameters", path
RegSetValueEx path, Name, 0, 3, value, 4
End Function


Как правильно переписать ее чтобы передать массив? И как его правильно передать?

З.Ы... Да уж.. в массивах я полный ноль... надо хоть почитать че-нить...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.04.2005 (Вт) 16:49

Чё-то не нравится мне эта функция... А где там закрытие ключа? А где проверка на успешность? Не, не хочу юзать эту функцию :)

Я тебе ссылку же давал :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 19.04.2005 (Вт) 16:57

Ой, сори! Забыл!!! Спасибо!!! Обязательно исправлю!!!

А проверка на успешность не нужна. От нее толку все-равно не будет. Таковая имеется только в функции получения... Но если тебе очень хочется...

Код: Выделить всё
Public Function RegSet(ByVal Name As String, ByVal value As Byte)
Dim path
Dim if_error
RegOpenKey HKEY_LOCAL_MACHINE, "System\RAdmin\v2.0\Server\Parameters", path
if_error = (RegSetValueEx path, Name, 0, 3, value, 4)
regclosekey path
if if_error then
msgbox "ОШИБКА!!!"
end if
End Function


Кста, заметь: в той функции, где нет проверки, осталось объявление переменной if_error... Гыыы... Удалить забыл :D
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 19.04.2005 (Вт) 17:14

[offtop]
Спасибо GSerg!
Нашел кучу лишнего в своей программе...
[/offtop]
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 19.04.2005 (Вт) 19:09

Топик мертв... :?: :?: :?:
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 132

    TopList  
cron