转载一段VB代码,不知道对你有没有帮助,你看看吧!Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) 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 ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long Private Const WM_SETFOCUS = &H7Private Sub Command1_Click() Dim Handle As Long, topHandle As Long Handle = FindWindow("CabinetWClass", "我的电脑") ' 只能是我的电脑,资源管理器不行 topHandle = Handle Handle = FindWindowEx(Handle, 0&, "WorkerW", vbNullString) Handle = FindWindowEx(Handle, 0&, "ReBarWindow32", vbNullString) Handle = FindWindowEx(Handle, 0&, "ComboBoxEx32", vbNullString) Handle = FindWindowEx(Handle, 0&, "ComboBox", vbNullString) Debug.Print Handle ' 这个Handle就是我的电脑的Combo的句柄了 SetForegroundWindow topHandle SendMessage Handle, WM_SETFOCUS, 0, 0 ' 让那个Combo获得焦点 End Sub
有难度。
让别的软件的edit控件获得焦点?
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) 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 ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Const WM_SETFOCUS = &H7Private Sub Command1_Click()
Dim Handle As Long, topHandle As Long
Handle = FindWindow("CabinetWClass", "我的电脑") ' 只能是我的电脑,资源管理器不行
topHandle = Handle
Handle = FindWindowEx(Handle, 0&, "WorkerW", vbNullString)
Handle = FindWindowEx(Handle, 0&, "ReBarWindow32", vbNullString)
Handle = FindWindowEx(Handle, 0&, "ComboBoxEx32", vbNullString)
Handle = FindWindowEx(Handle, 0&, "ComboBox", vbNullString)
Debug.Print Handle ' 这个Handle就是我的电脑的Combo的句柄了
SetForegroundWindow topHandle
SendMessage Handle, WM_SETFOCUS, 0, 0 ' 让那个Combo获得焦点
End Sub