Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как задать произ-е сочетание клавиш? 
:(
    Опции темы
t0r
Дата 25.11.2003, 10:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здравствуйте. Подскажите пожалуйста, как программно описать реакцию на произвольное сочетание клавиш. Проше говоря, к примеру, при одновременном нажатии клавиши "S" и "H" должно поятиться, ну пусть, например: "HELLO WORLD"? В книжных примерах обычно приводятся сочетания с функциональными клавишами: с Ctrl, Shift, Alt.

P.S. Где вобще можно почитать по этой теме (обработка нажатий клавиш, обработка сочетаний клавиш и т.п.)? - вроде бы ничего сложного, но я что-то застопорися sad.gif

Заранее благодарен.
  Вверх
Гость_Gogic
Дата 25.11.2003, 14:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Попробуй обрабатывать событие второй клавиши только при нажатой первой, то есть попробуй для первой клавиши выполнить событие KeyDown,
а для второй KeyPress.


  Вверх
Vach
Дата 28.11.2003, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 17.10.2003
Где: Санкт-Петербург

Репутация: 8
Всего: 18



Тут MsgHook.ocx
После установки OCX создай проект
+ подключи OCX к проекту
+ добавь его на форму (Msghook1).

Добавь код.
При нажатии ctrl+alt+t появится приветствие. smile.gif

Код
Const WM_HOTKEY = &H312
Const MOD_ALT = &H1
Const MOD_CONTROL = &H2
Const MOD_SHIFT = &H4
Const MOD_WIN = &H8

Declare Function RegisterHotKey Lib "user32" _
   (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" _
   (ByVal lpString As String) As Integer
Declare Function GlobalDeleteAtom Lib "kernel32" _
   (ByVal nAtom As Integer) As Integer
Declare Function UnregisterHotKey Lib "user32" _
   (ByVal hwnd As Long, ByVal id As Long) As Long

Dim iAtom As Integer

Private Sub Form_Load()
   Dim res As Long
   iAtom = GlobalAddAtom("T")
   res = RegisterHotKey(Me.hwnd, iAtom, MOD_ALT + MOD_CONTROL, vbKeyT)
   Msghook1.HwndHook = Me.hwnd
   Msghook1.Message(WM_HOTKEY) = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
   Dim res As Long
   res = UnregisterHotKey(Me.hwnd, iAtom)
   res = GlobalDeleteAtom(iAtom)
End Sub

Private Sub Msghook1_Message(ByVal msg As Long, ByVal wp As Long, ByVal lp As Long, result As Long)
   If msg = WM_HOTKEY Then
       If wp = iAtom Then
           MsgBox "HELLO WORLD!!!"
       End If
   End If
   Msghook1.InvokeWindowProc msg, wp, lp
End Sub

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.