1

我想检查是否显示了 Windows 7 的桌面(例如单击 control+D 或 showDesktop-Button 后)。

它适用于我设置 QtCore.Qt.FramelessWindowHint 以使装饰消失的应用程序。显示桌面并最小化所有内容后,我想重新显示应用程序(这应该是可选的,用户可以设置或取消设置此行为)。

我在 IDLE 中对此进行了测试。如果我显示桌面,我想检测更改,但仍然打印“1”。只有当我关闭(销毁)窗口时,它才会变为“0”,但这不是我要寻找的......

from PyQt4 import QtGui, QtCore
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
import win32gui
import time

class Main(QWidget):
    def __init__(self, app):
        QtGui.QWidget.__init__(self)
        self.app=app
        self.window=QWidget()
        self.window.resize(200,100)
        self.window.setWindowTitle("Dummy")
        #self.window.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.window.show()

        self.check_Minimized_Thread=Worker(self)

        self.check_Minimized_Thread.start()

        self.app.exec_()

class Worker(QThread):
    def __init__(self, parent = None):
        QThread.__init__(self, parent)
        self.exiting = False

    def __del__(self):
        self.exiting = True
        self.wait()

    def run(self):
        while True:
            time.sleep(0.5)
            hwnd=win32gui.FindWindow(None,"Dummy")
            A=win32gui.IsWindowVisible(hwnd)
            print(A)

        self.exit()


if __name__ == '__main__':
    app=QApplication(sys.argv)
    Main(app)
4

0 回答 0