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

2024-06-01 19:02:46 发布

您现在位置:Python中文网/ 问答频道 /正文

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

主要的问题是,当按下windows“最大化”按钮时,WS\u maximize样式没有设置。窗口的位置是正确的,并有助于尊重任务栏设置,但应用程序图标/标题和“窗口按钮”放错了位置,边框显示在任何其他屏幕上

使用winspy++我可以设置WS\u MAXIMIZE样式来修复这些图形化的麻烦。但这也导致了第二个问题。“restore”按钮也不起任何作用,当按下它时,它只会还原样式,不会将应用程序恢复到预先最大化的位置和大小

我本来打算用Python为这个程序制作一个启动器,来处理一些.ini文件和可变的可执行参数

我想扩展这个启动器,让它在应用程序后面默默地运行,解决这些问题

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

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

示例:[-8,-8]到[1374776],在带有最小化任务栏的1366x768屏幕上

如果有一种异步方法来检测窗口何时被移动/调整大小/按下窗口按钮,那么这比轮询每个步骤更好

为窗口提供“restore”信息以使用restore按钮似乎不那么简单。我已经读了尽可能多的参考资料,但没有找到任何关于这个。内存存储在哪里?如何访问它?它是只读的,并且只由操作系统设置吗

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


Tags: 内存命令程序脚本应用程序客户机ws屏幕