如果应用程序在 RDP 中切换,如何修复黑屏

How to fix blank screen if application is swithed in RDP

Visual FoxPro 9 应用程序使用 ?命令

SYS(602 , 1 )
MODIFY WINDOW screen FONT 'Arial',14
_Screen.Themes = .F.
hide menu _msysmenu
ACTIVATE SCREEN
clear

do while .t.
clear
  ?'1 Option1'
  ?'2 Option 2'
  ?'.  Exit'

  wait 'Select ' to valik
clear
...
enddo

如果 运行 在 RDP 下切换到本地桌面后文本 writer 到屏幕消失。整个屏幕都是空白的。

如何解决这个问题,以便在切换回应用程序后可以看到应用程序屏幕输出?我试过 SYS(602 , 1 ) 和 SYS(602 , 0 ) 但是这个 不修复黑屏。

这是因为当您通过 RDP 连接时屏幕分辨率发生了变化。
在分辨率更改时,VFP 重新绘制 _screen 并清除所有文本。 (屏幕上的文本未存储在任何地方)
如果你想保存输出,你可以在 _screen 上添加一些图层, 例如 textbox 对象。
其内容永久保存在object.value中,重绘后保存。

_screen.AddObject('out', 'textbox')
_screen.out.Visible= .T.
_screen.out.value = 'sometext'

或者您可以使用 set alternate 来处理输出。