减轻应用程序窗口的非客户端部分的错误行为

时间:2016-05-14 12:52:51

标签: python windows python-3.x winapi pywin32

我有一个程序有一些相当糟糕的窗口处理。我可以为应用程序的客户端部分提供脚本,但除了一些简单的移动/调整大小命令(没有帮助)之外,无法控制非客户端部分。

主要问题是,当windows"最大化"按下按钮未设置WS_MAXIMIZE样式。窗口定位正确,并有助于尊重任务栏设置,但应用程序图标/标题和" Windows按钮"错位,边框出现在任何其他屏幕上。

使用winspy ++我能够设置修复这些图形烦恼的WS_MAXIMIZE样式。但这也导致了次要问题。 "恢复"按钮也不执行任何操作,按下它时只会恢复样式,并且不会将应用程序恢复到预先最大化的位置和大小。

无论如何,我打算用Python编写这个程序的启动程序,以处理一些.ini的东西和可变的可执行参数。

我想扩展此启动程序以静默运行应用程序,修复这些问题。

这些内容旨在由操作系统处理,应用程序的开发人员似乎并不专注于解决这些问题,而是更多地关注增加应用程序脚本库和移植到其他系统。

我的假设是,当命令启动程序运行程序时,它需要访问线程/进程,以便它可以轮询应用程序窗口的位置和大小,并在需要时设置适当的样式,并且更重要的是(我猜),可以访问它的记忆。

示例:1366x768屏幕上的[-8,-8]到[1374,776],任务栏最小化。

如果有异步方法来检测窗口移动/调整大小/按下窗口按钮的时间,那么轮询每一步都会更好。

为窗口提供"恢复"使用恢复按钮的信息似乎有点不重要。我一直在阅读尽可能多的参考资料,但我没有找到任何相关信息。这个记忆存放在哪里?我该如何访问它?它是只读的,只能由操作系统设置吗?

我是Python的新手,所以我很抱歉,如果我的问题不适合我,我已经尝试过了。

0 个答案:

没有答案