Страница: 1 |
Вопрос: Несколько вопросов | Добавлено: 16.06.02 04:49 |
Автор вопроса: ![]() |
Заранее спасибо за помощь Вопрос первый Как записать в реестр в параметр типа Reg_Binary массив байтов? Вопрос второй Имеется форма с кнопками, которая должна обрабатывать нажатия любых клавиш. Функциональные клавиши не распознаются даже с KeyPreview |
Ответы | Всего ответов: 10 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 177633964 Вопросов: 5 Ответов: 42 |
Профиль | Цитата | #1 | Добавлено: 16.06.02 15:19 |
Лови, может, чем поможет... Constant Value vbKeyF1 0x70 F1 key. Кстати, нажатия функциональных клавиш обрабатывает форма, а не элемент управления. Попробуй так: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyF4 Then MsgBox “Нажата F4” ElseIf KeyCode = vbKeyF4 And Shift = vbShiftMask Then MsgBox “Нажаты F4 + Shift” End If End Sub |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 4 Ответов: 4 |
Профиль | Цитата | #2 | Добавлено: 17.06.02 08:21 |
...Гмм... Я, скорее всего, просто не знаю терминологии... Под функциональными клавишами я подразумевал LeftArrow, DownArrow, RightArrow, UpArrow, и еще несколько, нажатия которых в форме с какими-либо элементами управления никак не хотят обрабатываться, а именно: Home, End, Page Up, Page Down, Print Screen... Может быть, вы мне с этим поможете... Еще раз спасибо. |
Номер ответа: 3 Автор ответа: ![]() ![]() ICQ: 155153916 Вопросов: 2 Ответов: 126 |
Профиль | Цитата | #3 | Добавлено: 17.06.02 09:21 |
зн. vbKeyLeft,vbKeyRight... вообще просто посмотри содержимое класса KeyCodeConstants!!!(если не в курсе как, то: 1. в проекте нажми F2 2. В списке Classes найди KeyCodeConstants) |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 17.06.02 11:45 |
Не знаю поможет ли. В GW-BASIC перед кодом клавиши нужно было добавлять 0. Например CHR("0")+CHR("76") |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 177633964 Вопросов: 5 Ответов: 42 |
Профиль | Цитата | #5 | Добавлено: 18.06.02 00:10 |
Лови, может, это поможет Constant Value Description VbKeyLButton 0x1 Left mouse button. VbKeyPageUp 0x21 PAGE UP key. VbKeyNumlock 0x90 NUM LOCK key. ------------------- Кстати, тебе надо, чтобы с какой-то удерживаемой кнопой на клавиатуре нажималась еще кнопа на форме и все происходило? Если так, то посмотри на код, который я тебе давал, может, он чем поможет... И помни: нажатия функциональных клавиш обрабатывает форма, а НЕ элемент управления. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 177633964 Вопросов: 5 Ответов: 42 |
Профиль | Цитата | #6 | Добавлено: 18.06.02 00:20 |
Если решишь заманьячить ASCII - лови коды дополнительных символов Code|Character 32 [space] |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 4 Ответов: 4 |
Профиль | Цитата | #7 | Добавлено: 18.06.02 04:05 |
Я не совсем это имел в виду... Просто создайте пустую форму с кодом: Private Sub Form_KeyDown(keycode,shift) form.keypreview=true msgbox keycode end sub А теперь зараньте ее и нажмите какую-нибудь стрелку. Все работает, так? А теперь разместите на форме какой-нибудь элемент управления. Снова зараньте и нажмите стрелку... Вот что я имел в виду. Можно ли это как-нибудь исправить? |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 18.06.02 10:40 |
Попробуй GetKeyState. Но она требует таймер.
Есть другой вариант - быстрее, но неудобнее. Создай процедуру Sub Keys(KeyCode as Integer) msgbox KeyCode end sub А затем напиши во всех объектах в процедурах KeyPress (где есть): Call Keys (KeyCode) |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 177633964 Вопросов: 5 Ответов: 42 |
Профиль | Цитата | #9 | Добавлено: 18.06.02 22:55 |
Кстати, ты вообще в реестр писать умеешь? Если нет, то лови мысль :о) Если юзаешь стандартные ВБшные фичи, то у тебя все пишется в ключ [HKCU\SOFTWARE\VB and VBA Program Settings]. Для того, чтобы писать в любой ключ, надо юзать АПИ. Вот :о) |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 4 Ответов: 4 |
Профиль | Цитата | #10 | Добавлено: 22.06.02 02:37 |
К сожалению, сколько бы я не искал, ответа на вопрос о том, как записать в реестр в параметр Reg_Binary, я так и не нашел. Надо внести какие-либо изменения в следующую процедуру, а какие, не знаю: Sub SetValue(Root As Long, key As String, Field As String, Value As Variant) Я ничегошеньки не понимаю из того, что здесь написано, но она работает соответственно, только для Строковых и Dword параметров. Может, кто-нибудь поможет? А то, боюсь, придется создавать временный inf-файл, ранить его из-под проги, а потом удалять... |
Страница: 1 |
|