怎样设置窗体为活动窗口并且可以接受按键消息?
搜集了这么一堆api函数,发现怎么整都不管用。
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetActiveWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetFocusAPI Lib "user32" Alias "SetFocus" (ByVal hwnd As Long)
'添加一个text1、一个timer1设置延时为3秒
Option Explicit
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetActiveWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetFocusAPI Lib "user32" Alias "SetFocus" (ByVal hwnd As Long)
Private Const WM_SYSCOMMAND = &H112
Private Const SC_RESTORE = &HF120&
Private Sub Timer1_Timer()
SendMessage Me.hwnd, WM_SYSCOMMAND, SC_RESTORE, Me.hwnd
SetForegroundWindow Me.hwnd
SetActiveWindow Me.hwnd
SetFocusAPI Me.hwnd
Text1.SetFocus
SendKeys "123"
End Sub
'添加一个text1、一个timer1设置延时为3秒
Option Explicit
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetActiveWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Const WM_SYSCOMMAND = &H112
Private Const SC_RESTORE = &HF120&
Private Sub Timer1_Timer()
SendMessage Me.hwnd, WM_SYSCOMMAND, SC_RESTORE, Me.hwnd
SetForegroundWindow Me.hwnd
SetActiveWindow Me.hwnd
SetFocusAPI Me.hwnd
Text1.SetFocus
SendKeys "123"
End Sub
Option Explicit
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetActiveWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetFocusAPI Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Private Const WM_SYSCOMMAND = &H112
Private Const SC_RESTORE = &HF120&
Dim i As Long
Private Sub Form_Load()
Timer1.Interval = 100
End Sub
Private Sub Timer1_Timer()
If i Mod 30 = 0 Then
SendMessage Me.hwnd, WM_SYSCOMMAND, SC_RESTORE, Me.hwnd
SetForegroundWindow Me.hwnd
SetActiveWindow Me.hwnd
SetFocusAPI Me.hwnd
Text1.SetFocus
End If
If i Mod 30 = 1 Then SendKeys i
If i Mod 30 = 22 Then Text1.Text = ""
If i > 10000 Then i = 0 Else i = i + 1
End Sub
Private Declare Function SetFocusAPI& Lib "user32" Alias "SetFocus" (ByVal hwnd As Long)