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

主程序调用子程序,如何屏蔽子程序中会弹出的MsgBox?

--------------------编程问答-------------------- “高手”应该首先解决那些有价值的问题。而如何将错就错收拾烂摊子的事情并非他们考虑的范围。

不是每一个需求都值得被解决,不是每一个“难题”都值得你思考。如果你觉得一个无聊的问题应该有解,你得用钱说话——花10000块钱去解决一个雇佣几个民工帮你按键就能解决的问题的价值在哪里。

技术的价值在于它的杠杆作用,你很难在一般的生产劳动中通过技术革新提高十倍百倍的生产效率,但是软件可以。软件的价值不是我花100美元的代价解决一个价值10美元的问题。维护那些根本无法维护的一次性的代码就是属于毫无价值的事情。 --------------------编程问答-------------------- hook啊,,,,, --------------------编程问答-------------------- 如果确知会弹出几个对话框,可以利用 FindWindow 和 FindWindowEx 以及 SendMessage API 函数来实现你的需求。
--------------------编程问答--------------------
'本代码要测试时请先编译成 .exe 再试
'添加 Command1   Timer1
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_CLOSE = &H10
Const MsgTitle As String = "Test Message"    '此处需要事先知道每个框的标题.不过VBS是源码,可以找到.
Dim Rtn&, hwnd&
Private Sub Command1_Click()
    Timer1.Interval = 3000
    Timer1.Enabled = True
    Rtn = MsgBox("若您不回应的话,3 秒后此 MsgBox 会自动关闭", 64, MsgTitle)
    Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
    hwnd = FindWindow(vbNullString, MsgTitle)
    Call SendMessage(hwnd, WM_CLOSE, 0, ByVal 0&)
End Sub
补充:VB ,  VBA
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,