效果展示
image.png
任务栏简介
首先,大致了解以下Windows的任务栏,任务栏实质上是一个容器(类名为“Shell_TaryWnd”),在这个容器中有个二级容器(类名为“ReBarWindow32”),在这个二级容器中还有一个类名为“MSTaskSwWClass”的窗口,用来存放最小化后的窗口,他的窗口和“ReBarWindow32”的大小相同。
为了更加直观的理解,如图所示,红色部分为“Shell_TaryWnd”,黄色部分为“ReBarWindow32”,蓝色部分为“MSTaskSwWClass”。
image.png
将窗口嵌入任务栏
想要把窗口嵌入到任务栏中,其实就是将窗口放入“ReBarWindow32”容器中,但是为了不遮挡“MSTaskSwWClass”中的图标,我们需要重新调整“MSTaskSwWClass”容器的大小,为我们自己的窗口留出位置。
在python中,我们可以使用win32gui来获取这三个容器的句柄,然后通过句柄获得窗口的位置及尺寸。
首先,需要找到任务栏“Shell_TaryWnd”的窗口句柄(win32gui.FindWindow用来返回窗口句柄):
m_hTaskbar = win32gui.FindWindow("Shell_TrayWnd", None)
其次,找到他的子窗口“ReBarWindow32”的窗口句柄(win32gui.FindWindowEx用来找窗口中的子窗口)&#x