powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Боковая панель "справка Access"
4 сообщений из 4, страница 1 из 1
Боковая панель "справка Access"
    #35894544
A_l_e_x!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На форме по нажатию кнопки Ф1 у меня завешена процедура, вызывающая мою собственную справку, но кроме нее вылазит эта боковая панель. Как этого избежать?
...
Рейтинг: 0 / 0
Боковая панель "справка Access"
    #35894704
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так можно....


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
Option Compare Database
Option Explicit

Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" ( _
   ByVal hWnd As Long, lpdwProcessId As Any) As Long

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

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
   pDest As Any, pSource As Any, ByVal cb As Long)

Private Const WH_KEYBOARD_LL =  13 &     'enables monitoring of keyboard
                                       'input events about to be posted
                                       'in a thread input queue

Private Const HC_ACTION =  0 &           'wParam and lParam parameters
                                       'contain information about a
                                       'keyboard message

Private Type KBDLLHOOKSTRUCT
   vkCode As Long        'a virtual-key code in the range 1 to 254
   scanCode As Long      'hardware scan code for the key
   flags As Long         'specifies the extended-key flag,
                         'event-injected flag, context code,
                         'and transition-state flag
   time As Long          'time stamp for this message
   dwExtraInfo As Long   'extra info associated with the message
End Type

Private Const LLKHF_ALTDOWN = &H20&    'test the context code

Private 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
Private Declare Function UnhookWindowsHookEx Lib "user32" ( _
   ByVal hHook As Long) As Long
Private Declare Function CallNextHookEx Lib "user32" ( _
   ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, _
   ByVal lParam As Long) As Long

Private m_hLLKbdHook As Long
                              
Private m_AccAppProcessId As Long

Public Sub blockKeys()
    If m_hLLKbdHook Then
        Exit Sub
    End If
    GetWindowThreadProcessId Application.hWndAccessApp, m_AccAppProcessId
    m_hLLKbdHook = SetWindowsHookEx(WH_KEYBOARD_LL, _
                                    AddressOf LowLevelKeyboardProc, _
                                    GetModuleHandle(vbNullString), _
                                     0 &)
    If m_hLLKbdHook Then
    Else
       MsgBox "Failed to install low-level keyboard hook - " & err.LastDllError
    End If
End Sub


Public Sub unblockKeys()
 If m_hLLKbdHook Then
    UnhookWindowsHookEx m_hLLKbdHook
    m_hLLKbdHook =  0 
 End If
End Sub

Public Function LowLevelKeyboardProc(ByVal nCode As Long, _
                                     ByVal wParam As Long, _
                                     ByVal lParam As Long) As Long
Dim kbdllhs As KBDLLHOOKSTRUCT
Dim ForeProcessId As Long
    If nCode = HC_ACTION Then
        CopyMemory kbdllhs, ByVal lParam, Len(kbdllhs)
        GetWindowThreadProcessId GetForegroundWindow, ForeProcessId
        If m_AccAppProcessId = ForeProcessId Then
            If kbdllhs.vkCode <=  40  And kbdllhs.vkCode >=  33  Then
                LowLevelKeyboardProc = CallNextHookEx(m_hLLKbdHook, nCode, wParam, lParam)
            Else
                LowLevelKeyboardProc =  1 
            End If
            Exit Function
        End If
    End If
End Function

...
Рейтинг: 0 / 0
Боковая панель "справка Access"
    #35895140
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
            Select Case KeyCode
                Case  112 
                    funAction
                    KeyCode =  0 
            End Select
 End Sub
...
Рейтинг: 0 / 0
Боковая панель "справка Access"
    #35896274
A_l_e_x!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ФдуБольшое Спасибо!
ларчик то просто открывался :
Код: plaintext
KeyCode =  0 
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Боковая панель "справка Access"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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