我在打开网页后
让窗体置前
(setwindowpos Form1.hwnd, -1, 0, 0, 0, 0, Flag ' 窗体置前)
然后出现了问题
当前焦点不在 当前窗体上
于是我加了; Me.SetFocus
Me.WebBrowser1.SetFocus发现焦点是可以在当前窗体了
可是发现窗体闪烁数次而且此时tab 和enter键焦点是在其他地方(我打开了记事本 一开始放窗体前)怎么样做到 窗体置前后马上获得焦点
tab 和enter键也一直在当前窗体上
If WebBrowser1.LocationURL = "http://www.baidu.com/" Then
setwindowpos Form1.hwnd, -1, 0, 0, 0, 0, Flag ' 窗体置前
Me.SetFocus
Me.WebBrowser1.SetFocus
'Call Sleep(2000)
Print "完毕"
'Me.WebBrowser1.SetFocus
Call tb1(4) 'tab移动4次,并按回车
End IfPrivate Sub tb1(nn)
For tt = 1 To nn
Call keybd_event(9, 0, 0, 0) '模拟按下tab
Call keybd_event(9, 0, keyeventf_keyup, 0) '模拟松开tab
Next tt
keybd_event 13, 0, 0, 0 '模拟按下enter
keybd_event 13, 0, keyeventf_keyup, 0
End Sub
让窗体置前
(setwindowpos Form1.hwnd, -1, 0, 0, 0, 0, Flag ' 窗体置前)
然后出现了问题
当前焦点不在 当前窗体上
于是我加了; Me.SetFocus
Me.WebBrowser1.SetFocus发现焦点是可以在当前窗体了
可是发现窗体闪烁数次而且此时tab 和enter键焦点是在其他地方(我打开了记事本 一开始放窗体前)怎么样做到 窗体置前后马上获得焦点
tab 和enter键也一直在当前窗体上
If WebBrowser1.LocationURL = "http://www.baidu.com/" Then
setwindowpos Form1.hwnd, -1, 0, 0, 0, 0, Flag ' 窗体置前
Me.SetFocus
Me.WebBrowser1.SetFocus
'Call Sleep(2000)
Print "完毕"
'Me.WebBrowser1.SetFocus
Call tb1(4) 'tab移动4次,并按回车
End IfPrivate Sub tb1(nn)
For tt = 1 To nn
Call keybd_event(9, 0, 0, 0) '模拟按下tab
Call keybd_event(9, 0, keyeventf_keyup, 0) '模拟松开tab
Next tt
keybd_event 13, 0, 0, 0 '模拟按下enter
keybd_event 13, 0, keyeventf_keyup, 0
End Sub
为啥 要TAB TAB TAB TAB 的 Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long 这是API申明
如果是当前的你写的软件
CTJB = me.hwnd
如果是其他软件的窗体句柄
CTJB = FindWindow("你要设置焦点的那个窗体", vbNullString)SetForegroundWindow 这个是设置某个窗体获得焦点 参数为窗体的句柄 先取句柄 然后
call SetForegroundWindow (CTJB)