PostMessage向其他窗体发送鼠标单击事件,没反应

etie 2007-11-29 12:49:24
A程序只有一个窗体和一个按钮,点击按钮或者窗体会出现不同内容的对话框,A程序运行后自动最小化。
B程序有一窗体一按钮一文本框,要实现的功能是点击按钮后向A程序发送鼠标单击事件,让A程序弹出对话框
当然A程序运行在先

以下是B程序的代码,运行并点击按钮后A程序并没有弹出对话框来(不管A是否是最小化都没弹出来,-__-!~~~~)

Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202

Private Sub Command1_Click()
Dim hwnd As Long
hwnd = FindWindow(vbNullString, "Test") '获得A程序的句柄
Text1.Text = hwnd '观察是否获得A程序的句柄
PostMessage hwnd, WM_LBUTTONDOWN, 0, (10 And &HFFFF) + (20 And &HFFFF) * &H10000
Sleep 100
PostMessage hwnd, WM_LBUTTONUP, 0, (10 And &HFFFF) + (20 And &HFFFF) * &H10000
End Sub
...全文
947 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2007-12-02
  • 打赏
  • 举报
回复
同上....
zzyong00 2007-12-01
  • 打赏
  • 举报
回复
如果不用mouse_event,模拟点击窗体,真得是很难实现呀
期待高手
etie 2007-12-01
  • 打赏
  • 举报
回复
我最终的结果是要CLICK而不是MOUSEDOWN
嗷嗷叫的老马 2007-11-30
  • 打赏
  • 举报
回复
再顶一下
Tiger_Zhao 2007-11-30
  • 打赏
  • 举报
回复
编译成exe试试。
zzyong00 2007-11-30
  • 打赏
  • 举报
回复
哪个测试程序是不是VB编写?你可以在 mousedown 事件中编写代码试试
etie 2007-11-30
  • 打赏
  • 举报
回复
赵虎兄,这个我也想到了

谁能给我一个简单的例子啊Email:etie323@sina.com
嗷嗷叫的老马 2007-11-29
  • 打赏
  • 举报
回复
A程序的10,20处就是你要点的按钮吗?

延时长了一点吧
etie 2007-11-29
  • 打赏
  • 举报
回复
阿勇兄,SLEEP加上或者去掉我都试过的,没什么区别
zzyong00 2007-11-29
  • 打赏
  • 举报
回复
把Sleep 100 去掉试试
Tiger_Zhao 2007-11-29
  • 打赏
  • 举报
回复
应该用FindWindowEx再向下找到按钮的句柄,然后对该句柄发消息。
etie 2007-11-29
  • 打赏
  • 举报
回复
但是我窗体上也有CLICK事件的触发的啊,为什么窗体没有收到鼠标点击的消息呢?

如果要获得A程序的按钮的HWND应该如何做呢,请详细指点
Tiger_Zhao 2007-11-29
  • 打赏
  • 举报
回复
消息要发到按钮上,发到Form上是没用的。
鼠标点击某个位置应该由哪个hwnd接收消息是由系统自动完成的,Form收到一个点击事件不会做:查看该位置是哪个按钮然后将消息传递给该按钮。
etie 2007-11-29
  • 打赏
  • 举报
回复
A程序是这样的,一个小窗体,上面放了一个几乎和窗体差不多大的按钮

不知道是用A程序按钮的句柄还是窗口的句柄.


回复fengk20 发送鼠标DOWN和UP的语句应该是一样的,这个不会有问题的.

各位大哥谁来指点一下啊
fengk20 2007-11-29
  • 打赏
  • 举报
回复
postmessage 有没用对?
PostMessage hwnd, WM_LBUTTONUP, 0, (10 And &HFFFF) + (20 And &HFFFF) * &H10000 ?
适用人群通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。课程概述通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。   SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。。【开发者如何进行快速开发邮件发送系统???本课程系统进行快速研发,项目实战】 部分截图如下:完整版请查看课件或者视频

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧