Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: стандартная dll на VB6 Добавлено: 22.03.07 20:25  

Автор вопроса:  Arseny | ICQ: 298826769 
Скачал примерчик отсель:
http://www.vbnet.ru/samples/download.aspx?id=551
Туплю, не могу понять, как и какую функцию заставить
передать мне в прогу отловленный код клавиши.
Дабы не ползать особо по ссылке, вот код dll:

Public Const WH_KEYBOARD = 2
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public hHook As Long, hinst As Long, oldParam As Long
Function DLLMain(ByVal A As Long, ByVal B As Long, ByVal c As Long) As Long
    hinst = A
    DLLMain = 1
End Function
Function SetGlobalHook() As Long
    hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, hinst, 0)
SetGlobalHook = hHook
End Function
Sub Main()
'игнорируем...
End Sub
Function UnSetGlobalHook() As Long
    UnhookWindowsHookEx hHook
End Function
Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If idHook < 0 Then
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    Else
        'Просто логируем все в файл
        If oldParam <> wParam Then
        oldParam = wParam
        Open "C:\hooked.txt" For Append As #1
        Print #1, Chr(wParam);
        Close #1
        End If
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
End If
End Function

само-собой, что запись в файл мне нахрен не нужна,
а нужна передача КОДА клавиши мою программу.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #1 Добавлено: 22.03.07 20:39
Да, если есть у кого нормальная библа с глобальным хуком на клаву, и примерчик ее пользования - большая просьба намылить ее мне или дать линк... Заранее благодарен.

Ответить

Номер ответа: 2
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #2 Добавлено: 23.03.07 01:03
а нужна передача КОДА клавиши мою программу.

 Можно, например, в dll определить переменную в которую передаешь адрес своей процедуры (addressof myProc) и из хука вызывать ее посредством CallWindowProc.
Или передать hwnd окна и из хука посылать ему свое сообщение WM_USER + XXX.
А чужая dll, сам понимаешь, слабо управляема.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам