运行一个程序后弹出一个带确定的msgbox窗口,希望能用VB外部程序来按确定,如何做?

请用VB程序解答,谢谢已经查出相关msgbox的弹窗句柄,但是用确定按键句柄发送消息不起作用,望解答。hwnd5=hwnd5=FindWindow(vbNullStrin... 请用VB程序解答,谢谢
已经查出相关msgbox的弹窗句柄,但是用确定按键句柄发送消息不起作用,望解答。 hwnd5 = hwnd5=FindWindow(vbNullString, Text2.Text) '句柄值是变换的
hwnd6 = FindWindowEx(hwnd5, 0, vbNullString, "确定")
PostMessage hwnd6, WM_KEYDOWN, vbKeyReturn, 0 '向目标句柄发送回车键
PostMessage hwnd6, WM_KEYUP, vbKeyReturn, 0
上面的语句不管用(只针对msgbox类型的提示窗口);

一楼的答案:请看上面,然后测试一下;
二楼的答案:对我来说比较困难
三楼的答案:senkeys只针对激活的窗口可以做得到;上述情况下窗口不是激活状态,原因是对另外一个外部程序操作,所以sendkeys是无效,而且sendkey这种办法也无法实现后台操作;谢谢三位
是否有高人知道答案,继续等待;
展开
 我来答
百度网友fde8673
2010-02-19 · TA获得超过423个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:552万
展开全部
之前刚好看到的东西,就是说软件可以对非正常输入进行屏蔽。LZ不妨做个实验,看看原代码对于无屏蔽的MsgBox是否有效。

1.局部级模拟
键盘事件是最终被送到活动窗口,然后才引起目标程序响应的。那么最直接的模拟方法就是:直接伪造一个键盘消息发给目标程序。哈哈,这实在是很简单,windows提供了几个这样的API函数可以实现直接向目标程序发送消息的功能,常用的有SendMessage和PostMessage,它们的区别是PostMessage函数直接把消息仍给目标程序就不管了,而SendMessage把消息发出去后,还要等待目标程序返回些什么东西才好。这里要注意的是,模拟键盘消息一定要用PostMessage函数才好,用SendMessage是不正确的(因为模拟键盘消息是不需要返回值的,不然目标程序会没反应),切记切记.
2.全局级模拟

你会发现,用上面的方法模拟按键并不是对所有程序都有效的,有的程序啊,你向它发了一大堆消息,可是它却一点反应也没有。这是怎么回事呢?这就要看具体的情况了,有些程序(特别是一些游戏)出于某些原因,会禁止用户对它使用模拟按键程序,这个怎么实现呢?比如可以在程序中检查一下,如果发现自己不是活动窗口,就不接受键盘消息。或者仔细检查一下收到的键盘消息,你会发现真实的按键和模拟的按键消息总是有一些小差别,从这些小差别上,目标程序就能判断出:这是假的!是伪造的!!因此,如果用PostMessage发送局部消息模拟按键不成功的话,你可以试一试全局级的键盘消息,看看能不能骗过目标程序。
欧联科技
2010-02-06 · TA获得超过117个赞
知道小有建树答主
回答量:253
采纳率:100%
帮助的人:129万
展开全部
这个问题我也碰到过,想了很多办法,但都不尽如意,要想完美的解决这个问题,最好使自己写一个类,这个类就是一个弹出式窗口,用来显示提示信息,然后在类里添加一个自动关闭窗口的函数,在窗口弹出后,激活一个Timer控件,一定时间后自动关闭窗口。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gfaming1970
2010-02-05 · TA获得超过105个赞
知道答主
回答量:70
采纳率:0%
帮助的人:64.2万
展开全部
用SendMessage或PostMessage发送一个回车键即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式