powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Hook в VBA (Excel)
1 сообщений из 1, страница 1 из 1
Hook в VBA (Excel)
    #33644162
Kamsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли повесить hook при помощи VBA (MS Exel ) без DLL?
Попробовал такой вариант:
'API functions to be used
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long

Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long

Public 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

Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long


Public Declare Function GetCurrentThreadId Lib "kernel32" () As Long

'Constants to be used in our API functions
Public Const EM_SETPASSWORDCHAR = &HCC
Public Const WH_CBT = 5
Public Const HCBT_ACTIVATE = 5
Public Const HC_ACTION = 0
Public Const WH_KEYBOARD = 2

Public hHook As Long

Function Keyboard(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If idHook >= 0 Then
'Process keys you want to filter


If wParam = vbKeyReturn Then
MsgBox "!!!!", vbCritical, "gggg"
End If
End If
Keyboard = CallNextHookEx(hHook, idHook, wParam, lParam)
End Function


Private Sub Workbook_BeforeClose(Cancel As Boolean)
UnhookWindowsHookEx hHook
End Sub

Private Sub Workbook_Open()
lngThreadID = GetCurrentThreadId
lngModHwnd = GetModuleHandle(vbNullString)

hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf Keyboard, 0, lngThreadID)

End Sub

не работает! Вернее работает, но Exel зависает на неопределенное время.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Hook в VBA (Excel)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]