设为首页   |  加入收藏夹 快速导航:  热门文章  |  最新文章  |  梦想博客  
当前位置:编程之家 -> 文章频道 ->vb 
站内搜索:  

如何获取外部程序一个窗体中combox的值

作者:佚名 来源:中国VB 整理日期:2006-07-02
    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