nekeda писал(а):не в цикле, а в таймере.
Про RegisterHotKey не слышал?
nekeda писал(а):Про RegisterHotKey не слышал?
не слышал. А чем плоха GetAsyncKeyState?
nekeda писал(а):И правельно ли я понял что windows позволяет передать фокус другому окну, только если передаёт его активное окно?
tyomitch писал(а):Cytron, кончай нести чушь.
Сам-то проверял, раньше чем советовать?
Option Explicit
Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_WNDPROC = -4
Private Sub Form_Load()
RegisterHotKey hWnd, 0, vbCtrlMask, vbKeyA
OldWindowProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WndProc)
End Sub
Option Explicit
Private 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
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long
Private Const WM_HOTKEY = &H312
Public OldWindowProc As Long
Public Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_HOTKEY Then
SetForegroundWindow hWnd
MsgBox "Ку-ку!"
Else
WndProc = CallWindowProc(OldWindowProc, hWnd, Msg, wParam, lParam)
End If
End Function
Сейчас этот форум просматривают: Yandex-бот и гости: 18