1个简单的vb问题,如何让msgbox被自动点击

来源:百度知道 编辑:UC知道 时间:2024/05/24 03:28:34
是这样的,我现在有一个事件,这个事件引发msgbox,msgbox是最简单的那种,只有一个“确定”,我现在不想让人点击确定,而是让程序来做这件事事情,使得msgbox上面的确定被点击,然后msgbox消失,继续下面的程序,请问如何做到啊?
1楼的,我知道要用API,可是如何用啊?给个例子吧,谢谢!再现等
2楼的,是这样的,我在写一个socket程序,总有问题,我在出问题的那个语句上设一个断点,然后一个一个执行就没问题,或者不设断电,加一个msgbox,手动点击确定也没问题。但是当我调api sleep的时候,不管sleep多久,还是会报错,让我很郁闷,msgbox是一种中断,还有别的方法能够实现这种中断效果么?
*******我已经找到了相关的API,msg问题解决了********
*******很感谢各位,尤其是vrhero,你说的很对,我也明白这样不是办法,但是因为马上交活了,想先能用了再说,我对socket了解不多,希望你能给我发一段你所说的方法的例子(VB),就是关于异步执行+CreateThread,最简单的就行,我的mail tinaahou@126.com,我把分数多加了40,只有这些分了*******

奇怪的想法,既然你不想用户干预为什么要用Msgbox?
最简单就是做个Form,加个Timer定时Unload

补充:
原来如此,你的问题是网络延时和同步执行的问题,加Msgbox是治标不治本因为你不知道网络延时有多久
解决的方法是改用多线程异步执行,调用API函数CreateThread创建一个后台线程进行socket操作,完成操作后通知主线程继续下一步

需要用到windows api。哥哥,我不会。

可以做到,其实这不是一个简单的问题。我曾经用c做过。而且是处理可能是别的程序的MsgBox. 代码是:
HWND hpop, hbutton;
int nID;
hpop = FindWindow(NULL, "窗口标题"); //根据msgbox的标题寻找其窗口句柄。
if (hpop) { //如果找到了,
hbutton = FindWindowEx(hpop, NULL, "TButton", NULL); //再找类型为按钮的控件句柄。
nID = GetDlgCtrlID(hbutton); //肯定找的到,所以就不判断了,直接转换为id.
SendMessage(hpop, WM_COMMAND, MAKEWPARAM(nID, BN_CLICKED), (LPARAM)hbutton); //送他一个click.
}
FindWindowEx找类型为按钮("TButton"类型. 你VB中可能不一样,可能就是"Button")的控件句柄也可以根据按钮文字来找。
此段子程序应使用Timer每一秒执行一次,只要发现有这个msgbox, 就会给他一个click, 很好用的。
其中所有函数都是API. 如果理解了,转换成VB不会有困难。
同意这样处理Msgbox是治标不治本。在治本有困难时,治治标也未尝不可。

附:
Private Declare Function FindWindow Lib "user32" Alia