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

Ter*_*rry 5 windows user-interface multiple-monitors

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

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

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

我们还不确定是图形驱动程序要求调整大小还是 Windows。希望通过这个问题,哪个组件负责,

在此设置中,(文件)资源管理器和 Firefox 等流行应用程序的行为方式相同。仅复制:

  1. 打开资源管理器 ( Win+E)
    • 将资源管理器窗口拖动到水平大于 1 个屏幕
    • 锁定工作站 ( Win+L),
    • 开锁
    • 应用程序现在应该调整大小以仅在 1 个屏幕上

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

Mar*_*som 1

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

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