windows – 当工作站被锁定然后解锁时,如何防止窗口大小调整?

我们有一个在多监视器环境中运行的应用程序.用户通常将应用程序对话框展开以跨越多个mointors.

如果用户锁定工作站,然后将其解锁,我们的应用程序将被告知要调整大小.

我们的用户发现这种行为令人沮丧,因为他们花了一些时间来恢复以前的布局.

我们还不确定它是否是请求调整大小或Windows的图形驱动程序.希望通过这个问题,更明确哪个组件负责,

像(File)Explorer和Firefox这样的流行应用程序在此设置中的行为方式相同.复制只是:

>打开资源管理器(Win E)

>将资源管理器窗口拖动到水平方向大于1个屏幕
>锁定工作站(Win L),
>解锁
>应用程序现在应该调整为仅在1个屏幕上

当工作站被锁定然后解锁时,如何防止窗口大小调整?
我们是否需要编码检查(un)锁定?
还有其他我们不知道的机制吗?

最佳答案 在调整窗口大小之前,应用程序将从Windows获取
WM_WINDOWPOSCHANGING消息.您可以拦截该消息并更改参数,从而强制窗口保持不变.您需要小心,因为当用户尝试移动窗口或调整窗口大小时,您将收到相同的消息.也许当它最大化或最小化时.

编辑:您可以使用WTSRegisterSessionNotification function获取其他消息.这些消息用于快速用户切换,但锁定屏幕在Windows中实现为系统会话.

点赞