powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / API как заблокировать клавиатуру конролу...
17 сообщений из 17, страница 1 из 1
API как заблокировать клавиатуру конролу...
    #35528921
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите возможно-ли ср-вами апи заблокировать сообщения от клавиатуры для конкретного контрола?
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35529064
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Grayscale
> Подскажите возможно-ли ср-вами апи заблокировать сообщения от клавиатуры для
> конкретного контрола?


Подмена оконной функции(сабклассинг) с игнорированием сообщений WM_CHAR

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35529077
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно поподробней..? незнаком с этим((
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35529162
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35529171
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Посмотрю))))
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35529191
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Call Unhook
Call это какой-то специфический вызов или равнозначно
Код: plaintext
Unhook
?
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35529245
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Grayscale
> Call UnhookCall это какой-то специфический вызов или равнозначно
>
> Unhook?


в данном случае равнозначно, просто для читабельности, в случае с параметрами, будут
передаватся по значению, даже если объявлена передача по ссылке.

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35529291
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял спасибо))) сейчас разбираюсь и вкручиваю в Access... Чувствую у меня будут к вам еще вопросы))))
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35529436
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.
Option Compare Database
Option Explicit
Public Const GWL_WNDPROC = - 4 
Public Const WM_CHAR& = &H102

Global lpPrevWndProc As Long

Public Declare Function GetFocus Lib "user32" () As Long

Public Declare Function DefWindowProc Lib "user32" Alias _
   "DefWindowProcA" (ByVal HWND As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias _
   "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
    ByVal HWND As Long, ByVal Msg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias _
   "SetWindowLongA" (ByVal HWND As Long, _
    ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Sub Hook(HWND As Long)
    lpPrevWndProc = SetWindowLong(HWND, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Public Sub UnHook(HWND As Long)
Dim TEMP As Long
    TEMP = SetWindowLong(HWND, GWL_WNDPROC, lpPrevWndProc)
End Sub

Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If uMsg = WM_CHAR Then
        WindowProc = DefWindowProc(hw, uMsg, wParam, lParam)
    Else
        WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
    End If



Private Sub Form_Load()
    Me.txtTemplDesc.SetFocus
    Hook GetFocus
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Me.txtTemplDesc.SetFocus
    UnHook GetFocus
End Sub
End Function

вот такой текст не работает... вроде бы все так?
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35529440
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
end sub и end function при копировании так встали...
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35529513
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбоносв случае с параметрами, будут
передаватся по значению, даже если объявлена передача по ссылке.
Это какое-то недоразумение.
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35529994
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч Игорь Горбоносв случае с параметрами, будут
передаватся по значению, даже если объявлена передача по ссылке.
Это какое-то недоразумение.А точнее ерунда. Call просто синтаксическая конструкция, к режиму передачи параметров отношения не имеющая.
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35530010
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а с апи у меня что не так?))))
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35530032
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Form_Load()
    Me.txtTemplDesc.SetFocus
    Hook GetFocus
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Me.txtTemplDesc.SetFocus
    UnHook GetFocus
End Sub

попробуйте сначала hwnd определить. возможно еще фокус на контрол не установлен
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35530068
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все так, только SetFocus лишнее и
Код: plaintext
1.
2.
Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If uMsg <> WM_CHAR Then WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35530108
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Antonariy
> Владимир Саныч
> Игорь Горбонос
> в случае с параметрами, будут
> передаватся по значению, даже если объявлена передача по ссылке.
>
> Это какое-то недоразумение.
> А точнее ерунда. Call просто синтаксическая конструкция, к режиму передачи
> параметров отношения не имеющая.

Согласен, погорячился ;)
Погорячился, потому, что на передачу параметров влияли скобки, т.е. вызовы
ИмяФункции/ИмяПроцедуры(Параметр) и ИмяФункции/ИмяПроцедуры(Параметр) были разными. Но
сейчас параметры в скобки заключить можно только подставив Call.
Топика в котором узнал это, не нашёл, но
здесь
написанно что и почему и к чему относится.

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
API как заблокировать клавиатуру конролу...
    #35530339
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Игорь Горбонос
>
> вызовы ИмяФункции/ИмяПроцедуры(Параметр) и ИмяФункции/ИмяПроцедуры(Параметр) были
> разными.

Читать:
вызовы ИмяФункции/ИмяПроцедуры(Параметр) и ИмяФункции/ИмяПроцедуры Параметр

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / API как заблокировать клавиатуру конролу...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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