
如何获取外部程序一个窗体中combox的值 |
ComboBox主要是由ComboBox和一个Edit类组成的,关键在于要获得那个Edit的句柄并向其发消息,下面的代码是我在XP下调试通过的:获得资源管理器中的那个ComboBox中的内容(运行时先启动一个资源管理器) Option Explicit 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 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 Const EM_GETLINE = &HC4 Private Sub Command1_Click() Dim Handle As Long Dim ParentHandle As Long Dim ComboText As String ParentHandle = FindWindow("ExploreWClass", vbNullString) ParentHandle = FindWindowEx(ParentHandle, 0&, "WorkerW", vbNullString) ParentHandle = FindWindowEx(ParentHandle, 0&, "ReBarWindow32", vbNullString) ParentHandle = FindWindowEx(ParentHandle, 0&, "ComboBoxEx32", vbNullString) ParentHandle = FindWindowEx(ParentHandle, 0&, "ComboBox", vbNullString) Handle = FindWindowEx(ParentHandle, 0&, "Edit", vbNullString) ComboText = Space(255) SendMessage Handle, EM_GETLINE, 0, ByVal ComboText MsgBox "Combo中的内容为:" & Left(ComboText, InStr(ComboText, Chr(0)) - 1) End Sub |