【问题标题】:Issue with resizing windows using an Application Compatibility shim使用应用程序兼容性 shim 调整窗口大小的问题
【发布时间】:2019-10-03 04:34:47
【问题描述】:
我正在尝试在 Windows 10 上运行旧版 VB6 应用程序。我正在创建一个 .sdb shim 文件,该文件使用 Windows ADK 中的兼容性管理器工具检测应用程序的 .exe。每当 .exe 运行时,屏幕分辨率都会调整为特定分辨率。当.exe停止时,分辨率恢复正常。
我正在使用的兼容性修复是“ForceDisplayMode”,其参数以旧版应用的旧分辨率显示。还有“ForceTemporaryModeChange”,它将使屏幕分辨率恢复正常。
我遇到的一个问题是,当应用程序打开时,如果我关闭笔记本电脑盖并重新打开它,.sdb 将停止工作(Windows 不会注销)。如果我注销,旧分辨率将按预期保持。我想弄清楚是否可以选择维持 .sdb 的分辨率,或者这是否是微软的疏忽?
【问题讨论】:
标签:
windows
vb.net
windows-10
compatibility
shim
【解决方案1】:
好的,万一将来有人遇到这个令人难以置信的晦涩问题,解决方案显然是在 Windows 10 1809 上禁用平板电脑模式。通过关闭我的 SP3/SP6 的盖子来解决 .sdb 垫片被撤消的问题.
编辑:好的,事实证明这不是解决方案。这只是巧合,所以我没有勾选这个答案。我们有一个没有这个问题的图像,但后来的图像恢复了这种行为。还是不知道为什么会这样。
编辑 2:我仍然不知道为什么会发生这种情况,但我有一些观察结果可能会对某人有所帮助。我使用的是 Windows 10 LTSC 版本 1809 Build 17763.615。这似乎与通过翻转键盘使 SP6 进入睡眠状态有关。如果您通过 Windows > Power > Sleep 或按下电源按钮或让 SP6 自行进入睡眠状态,则 SDB 得到正确维护。另一个奇怪的现象是,如果你通过上面列出的 3 种方式睡眠,然后向上翻转键盘,SDB 就会被取消。