如题
keybd_event SendMessage 只发送单个事件.我要发送字符串文本尤其汉字到文本控件,应该如何实现呢?
谢谢
keybd_event SendMessage 只发送单个事件.我要发送字符串文本尤其汉字到文本控件,应该如何实现呢?
谢谢
解决方案 »
- 无法加载imagelist控件,可能是mscomctl.ocx已过期
- 怎样处理数据记录字段空值
- 求助vb ACCESS 数据添加方法
- msgbox显示的字符串内容比较长,如何全部一次显示?它是不是有默认长度限制的?
- ado recordset open的问题
- 请教关于工程文件和窗体文件的问题:
- 有错误吗?
- 如何将把一个form在编辑时就设置为屏幕的最大大小
- 前两天发的贴子没有得到答案,一气之下自己写了这个控件。
- 用VBA生成几组标点画有效前沿,运行出现问题,求大神解答
- 请教excel生成图表显示的问题
- Application.FileDialog(msoFileDialogSaveAs)如何自定义筛选?
SendMessage 就可以发送文本字符串
Public Declare Function FindWindow& Lib "user32" Alias "FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)
FindWindowEx 查找子窗口句柄
Public 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
另外哪个API可以取得当前鼠标位置下的控件句柄? 这个问题要知道我的问题也可以解决的.
'取得当前鼠标位置下的控件句柄:
'xPoint 鼠标位置 X坐标
'yPoint 鼠标位置 Y坐标
Private Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long'取得当前鼠标所在位置. lpPoint.X 可以作为上面的X坐标. lpPoint.Y可以作为上面的Y坐标.
GetWindowText '只可以取得文本.不管是什么样的进程.
SetWindowText '只可以设置文本,不管是什么样的进程.
如果你取不到或设置不了文本.只能说明,那个进程对这些API或控件里面的文本进行了处理.
你说:GetWindowText '只可以取得文本.不管是什么样的进程. 好象不完全对呀,我做了个验证,发现很有意思的现象:
GetWindowText取得本进程的文本完全正确,但对于其它进程的文本控件只能取得控件初始化时的文本,控件文本经编程改变
或用户输入改变后是不能取得的.什么原因呢?首先考虑到我代码的问题,主要代码如下:Public Function GetWinText(ByVal Hnd As Long) As String
Dim Buf As String * 256
Dim I As String
Dim T As String
Dim Ln As Long
Ln = GetWindowText(Hnd, Buf, 255)
'If Ln > 0 Then T = Mid(Buf, 1, Ln)
I = InStr(1, Buf, Chr(0))
If I > 0 Then T = Mid(Buf, 1, I - 1)
GetWinText = T
End Function
Hnd 是用WindowFromPoint取得的,应该没有问题的
不知问题出在哪里?能否解决?