当前位置:编程学习 > VB >>

VB后台PostMessage和SendMessage 老虾救急

现有代码
PostMessage hwnd, WM_SYSKEYDOWN, 65, 0
已经成功实现了发送Alt+a的操作。
但是由于特殊原因,需要:先按下Alt,再按多个字母/数字,最后弹起ALT。
流程:
Alt按下
     延时 50
a按下
     延时 50
a弹起
     延时 50
1按下
     延时 50
1弹起
     延时 50
Alt弹起

后台操作Alt,PostMessage/SendMessage均可
参考帖 http://www.cnblogs.com/hahaqi/archive/2010/08/10/1796444.html

我把参数换了很多了  也试不出来 老虾救急 --------------------编程问答-------------------- http://download.csdn.net/detail/veron_04/1745426 --------------------编程问答--------------------
引用 1 楼  的回复:
http://download.csdn.net/detail/veron_04/1745426


这个不能操作外部窗体。。。 --------------------编程问答-------------------- http://download.csdn.net/detail/veron_04/2813308 --------------------编程问答--------------------
引用 3 楼  的回复:
http://download.csdn.net/detail/veron_04/2813308



T_T 最后70分在这个帖子上,最后一点下载分。。。希望下载了能有帮助。。。 --------------------编程问答--------------------

Option Explicit
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Const WM_SYSKEYUP = &H105
Private Const WM_SYSKEYDOWN = &H104
Private Sub test()
    Dim lngHwnd As Long
    lngHwnd = FindWindow(vbNullString, "1.txt - 记事本")
    PostMessage lngHwnd, WM_SYSKEYDOWN, &H46, &H3E0001 Or &H20000000   ' 模拟按下 Alt+F
    Sleep 100
    PostMessage lngHwnd, WM_SYSKEYUP, &H46, &HC03E0001 Or &H20000000   '  模拟抬起 Alt+F
End Sub

Private Sub Command1_Click()

End Sub

Private Sub Form_Load()
    Timer1.Enabled = True
    Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
    Call test
End Sub

--------------------编程问答-------------------- 上面这个肯定有用,模拟Alt+F的按下和弹起的 --------------------编程问答-------------------- 哥。其实
PostMessage 窗口句柄, WM_SYSKEYDOWN, &H46, &H3E0001 Or &H20000000
这一行就实现操作了 
下面的sleep没起到间隔作用。。。 --------------------编程问答--------------------
引用 7 楼  的回复:
哥。其实
PostMessage 窗口句柄, WM_SYSKEYDOWN, &H46, &H3E0001 Or &H20000000
这一行就实现操作了 
下面的sleep没起到间隔作用。。。

的确是的,希望能对你有所帮助。 --------------------编程问答-------------------- 哥   莫非 真的有弹起的操作?!?!?!?!?!?! --------------------编程问答--------------------
引用 8 楼  的回复:
引用 7 楼 的回复:
哥。其实
PostMessage 窗口句柄, WM_SYSKEYDOWN, &H46, &H3E0001 Or &H20000000
这一行就实现操作了
下面的sleep没起到间隔作用。。。

的确是的,希望能对你有所帮助。



哦  如果有弹起操作 最好了啊   能不能弱弱的问下
&H3E0001 Or &H20000000
这个是什么意思。。。 --------------------编程问答-------------------- 具体我也说不上来,反正是指定特殊功能按键吧。你可以百度一下他的含义。 --------------------编程问答-------------------- http://topic.csdn.net/u/20101101/14/c6c17f1a-1fd8-4cec-afcf-045265e5f819.html --------------------编程问答--------------------
引用 11 楼  的回复:
具体我也说不上来,反正是指定特殊功能按键吧。你可以百度一下他的含义。


最后的参数 我用的是0 也可以运行
百度翻了帖子 都说的很含糊 没有具体的意义 --------------------编程问答-------------------- http://download.csdn.net/detail/veron_04/1745426 
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,