shellex 函数可以打开其他应用程序 并指定打开后窗口的状态
postmessage函数可以 向指定的(必须有句柄) 程序 或者程序上的控件发送消息 (单击 双击 字母 扩展键 = 文字信息可以用setkey(好像是这个吧))这些资料你去百度上搜 一大堆
postmessage函数可以 向指定的(必须有句柄) 程序 或者程序上的控件发送消息 (单击 双击 字母 扩展键 = 文字信息可以用setkey(好像是这个吧))这些资料你去百度上搜 一大堆
解决方案 »
- 连续扫描输入问题
- [求助]怎么实现对弹出对话框选项的自动选择?
- 怎样删除文本文件中的指定行?
- 请问如何使用vb设置文件共享~~!在线侯ing
- 关于语句on error goto 语句
- key_down和key_up事件中的,keycode是什么意思?大家给解释一下可以么?
- 用VB建立数据库--ACCESS的
- 一执行“Check1.Value = 1”句就自动执行这个检查框的Check1_Click()事件过程,如何避免?
- 请问哪里有可以制作出类似Winzip功能(可以对里面的文件单独操作)的压缩控件?
- 怎么样用VB实现窗口的跳动???急急急急急急急急急!!!!
- VB用XMLHTTP如何发送图片加文字的表单
- 跪求vb牛人赐教
postmessage函数可以 向指定的(必须有句柄) 程序 或者程序上的控件发送消息 (单击 双击 字母 扩展键 = 文字信息可以用setkey(好像是这个吧))这些资料你去百度上搜 一大堆
我先百度下
2、用api保证打开的窗口取得蕉点
3、sendkey,对窗口发送相关的键信息
SetWindowFocus Lib "user32" Alias "SetFocus" (ByVal hWnd As Long) As Long
那为什么不用postmessgae?不用焦点额
2)取得VS程序的句柄,并通过FindWindowEx获取VS程序中输入框和按钮的句柄(我假设是这样)。
3)通过SendMessage,向VS的文本框输入内容(这个内容就是VB6中定义的了),然后再通过SendMessage按下VS的按键。其中,shell是可以通过参数控制shell出来的程序获得焦点的。不用API。
shell出程序自然没问题,但是我用findwindow或findwindowex或其他函数,却只能找出窗口中第一层的控件句柄,内层的找不到,比如窗口内有SysTabControl32,可以找到句柄,但SysTabControl32里还有个类名为#32770的窗口,就找不到了,更别提#32770里的控件了愁死了
Alias "FindWindowExA" _
(ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long (1)hwndParent:要查找子窗口的父窗口句柄。
如果hwndParent为NULL,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口。
(2)hwndChildAfter :子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndParent窗口的直接子窗口而非后代窗口。如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口。
(3)lpszClass:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位,必须位于lpClassName的低16位,高位必须为0。
(4)lpszWindow:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为 NULL,则为所有窗口全匹配。
hWnd1 Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)
hWnd2 Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索
也就是说,用这个可以查到子窗口,再查子窗口里面的子控件,你可以根据控件类型或名称去查找,有相同名称的话也可以通过顺序查找
lHwnd = FindWindow(vbNullString, titleSTR1)
lChildHwnd = FindWindowEx(lHwnd, 0&, vbNullString, titleSTR2)
lChildHwndY = FindWindowEx(lChildHwnd, 0&, vbNullString, "0")
得到句柄之后就好办了
可以sendmessage了
For i = 1 To Len(Str)
SendMessage hwnd, WM_IME_CHAR, Asc(Mid(Str, i, 1)), 1
Next
送出你想要的字符
#DeFine WM_LBUTTONDBLCLK 0x203双击鼠标左键 SendMessage BTNhwnd, WM_LBUTTONDBLCLK或
#DeFine WM_LBUTTONDOWN 0x201按下鼠标左键#DeFine WM_LBUTTONUP 0x202释放鼠标左键