默认的桌面窗口是“SHELLDLL_DefView”,在“Progman”窗口下,你写个程序检测,会发现,点击显示桌面后,桌面窗口跑到了“WorkerW”窗口下。这时,激活任意程序窗口,这个特殊状态就消失了,桌面又回到了“Progman”窗口下。
其实系统的显示桌面功能,并不是将桌面上的所有应用程序窗口隐藏或最小化,而是一个特殊的状态,“WorkerW”默认是隐藏,当要显示桌面时,会被显示出来,并且窗口Z次序跑到顶层,然后将“SHELLDLL_DefView”桌面的父窗口由“Progman”改为“WorkerW”,这时的应用程序可能也是在某种特殊状态下。所以你用IsWindowVisble、IsIconic等函数是检测不出来的,除非点了显示桌面后,又激活了任意某个窗口。
原文地址:https://www.cnblogs.com/hei-hei-hei/p/11417482.html
时间: 2024-11-09 00:28:37