Python FindWindowEx不';找不到通过远程桌面连接显示的MessageBox

Python FindWindowEx不';找不到通过远程桌面连接显示的MessageBox,python,winapi,pywin32,findwindowex,Python,Winapi,Pywin32,Findwindowex,我们有一个构建机器,在它上面我们每天构建并在我们开发的应用程序上执行测试。问题是一些测试失败了,因为我们的一些可执行文件正在崩溃。如果它们能正常崩溃,那只是一次失败的测试 但是,相反,他们失败了,弹出窗口阻止他们完成。它们将在一段确定的时间后被杀死(通常为5-10分钟)。我们通过创建一个“看门狗”来解决这个问题,该看门狗定期检查弹出窗口并在发现时关闭它们。用于检查的python代码如下所示: def CheckGenericPopupByClassName(hwnd,className):

我们有一个构建机器,在它上面我们每天构建并在我们开发的应用程序上执行测试。问题是一些测试失败了,因为我们的一些可执行文件正在崩溃。如果它们能正常崩溃,那只是一次失败的测试

但是,相反,他们失败了,弹出窗口阻止他们完成。它们将在一段确定的时间后被杀死(通常为5-10分钟)。我们通过创建一个“看门狗”来解决这个问题,该看门狗定期检查弹出窗口并在发现时关闭它们。用于检查的python代码如下所示:

def CheckGenericPopupByClassName(hwnd,className):
    # pass None for desktop popups

    hwndPopup = None
    hwndFirst = None
    consecutiveExceptionCount = 0
    # check for popups on Desktop
    while True:
        try:
            hwndPopup = win32gui.FindWindowEx(hwnd, hwndPopup, className, None) # Check with Spy++ for class name
        except Exception as e:
            print("CheckGenericPopupByClassName exception:"+str(e))
            hwndPopup = hwndFirst = None
            consecutiveExceptionCount = consecutiveExceptionCount + 1
            if consecutiveExceptionCount > 5:
                return
            continue

        consecutiveExceptionCount = 0

        if hwndPopup is None or hwndPopup is 0 or hwndPopup is hwndFirst:
            break

        if hwndFirst is None:
            hwndFirst = hwndPopup

        HandleGenericPopup(hwndPopup) # this closes the popup
问题在于,
MessageBox
位于远程桌面连接登录的上方,并且以前的方法找不到它。在我登录到远程桌面连接后,会通过定期调用的函数找到弹出窗口

MessageBox来自csrss.exe(我在Process Explorer中看到过),包含以下文本:

“XXXXX.exe-应用程序错误”

“在的引用内存中的指令。无法读取内存。”

单击“确定”终止程序

单击“取消”调试程序

我可以这样做:

但是我想知道为什么
FindWindowEx
在这种情况下找不到MessageBox。你知道我该怎么做才能找到那个邮箱吗

谢谢

稍后编辑:
可以找到禁用弹出窗口的解决方案。

我选择避免显示弹出窗口


我用过。

FindWindow
是错误的工具。改用。