这是我的问题:我们的产品有一个自动构建过程。在编译其中一个 VB6 项目期间,会弹出一个消息框,要求用户单击“确定”,然后才能继续。作为一个自动化过程,这是一件坏事,因为它最终可能会坐在那里几个小时不动,直到有人点击确定。我们已经查看了 VB6 代码来尝试抑制消息框,但现在似乎没有人知道如何去做。因此,作为临时修复,我正在开发一个将在后台运行的程序,当消息框弹出时,将其关闭。到目前为止,我能够检测到消息何时弹出,但我似乎无法找到正确关闭它的功能。该程序是用 C# 编写的,我正在使用 user32.dll 中的 FindWindow 函数来获取指向窗口的指针。到目前为止,我 我试过 closeWindow、endDialog 和 postMessage 来尝试关闭它,但它们似乎都不起作用。closeWindow 只是将其最小化, endDialog 出现错误的内存异常,而 postMessage 什么也不做。有谁知道可以解决这个问题的任何其他功能,或任何其他摆脱此消息的方法?提前致谢。
这是我目前拥有的代码:
class Program
{
[DllImport("user32.dll", SetLastError = true)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
static void Main(string[] args)
{
IntPtr window = FindWindow(null, "Location Browser Error");
while(window != IntPtr.Zero)
{
Console.WriteLine("Window found, closing...");
//use some function to close the window
window = IntPtr.Zero;
}
}
}