问两个关于API的问题~~~
1 如何遍历别的应用程序所有控件的句柄?2 sendmessage函数 如何把个数值或字符串 发送到别的程序的text控件上?
解决方案 »
- 如何更改ListView控件的行颜色,SDK方式的。
- 再问sql查询汇总的问题!
- vb中关于AppenChunk使用中发现的一个奇怪的问题,各位高手请帮帮我
- 急!为什么用MCI函数(如mciSendString)在98下能录音,而在2000下录不了音呢?
- 我需要一个VB写的局域网传输文件原代码,传输速度要快的
- 一个VB的问题
- 將 Excel 的文件导入 Access文件时,下面的代码,需要引用什么对象呢?
- 新手请教 用VBA 从网页上获取的英文内容可以直接翻译成中文吗?
- 如何创建一个 二进制的文件
- 请问如何解码UTF-8?
- 关于winsock做FTP客户端
- 急!!请问如何得到用shellexecute启动EXE时传递的参数???
Option ExplicitPrivate Declare Function SendMessage Lib "user32.dll" 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.dll" 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 BM_CLICK = &HF5
Private Const WM_SETTEXT = &HC
Const WM_GETTEXT = &HD
Const WM_GETTEXTLENGTH = &HEPrivate Sub Command1_Click()
Dim t As Long
Dim b As Long
Dim d As Long
Dim clong As Long
Dim astr As String * 256t = FindWindow(vbNullString, "计算器")
b = FindWindowEx(t, ByVal 0&, "Edit", vbNullString)'设置号码
SendMessage b, WM_SETTEXT, 0, ByVal Text1.Text clong = SendMessage(b, WM_GETTEXTLENGTH, 0, vbNull)
clong = Len(astr)
SendMessage b, WM_GETTEXT, clong, ByVal astr
Debug.Print astr
End Sub
使用GW_CHILD,GW_HWNDNEXTPrivate Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2tWnd = FindWindow(vbNullString, "Form1")
bWnd = GetWindow(tWnd, GW_CHILD)
Do
lpClassName = Space(256)
RetVal = GetClassName(bWnd, lpClassName, 256)
i = InStr(1, lpClassName, Chr(0))
mName = Left(lpClassName, i - 1)
If mName = "打开(&O)" Then
SendMessage bWnd, BM_CLICK, 0, 0
Exit Do
Else
bWnd = GetWindow(bWnd, GW_HWNDNEXT)
End If
Loop
完了马上结贴