当监视器设置为“仅在1个桌面上显示”时,在WPF中访问第二个监视器

3

我正在开发一款应用程序,该程序将在安装有一个显示器和前面板的 Windows 7 系统上作为双屏幕设置运行。虚拟桌面软件将被用于大部分时间来访问它,并且虚拟化软件应仅显示在监视器上,而不是前面板。

当设置为“扩展这些显示器”时,虚拟化软件会将两个屏幕拼接在一起显示,似乎没有关闭此功能的方法。如果我将多重显示器设置为“仅在 1 上显示桌面”,则虚拟化系统可以正常工作,但现在在我的 WPF 应用程序中,第二个显示器似乎不存在。我的 Screen.AllScreens 数组只显示一个显示器。

是否有方法可以使我的 WPF 应用程序在桌面设置为“仅在 1 上显示桌面”时以全屏模式显示在第二个显示器上?对于此应用程序,在任何情况下都只需全屏。


有趣的问题。如果你没有得到答案,最终通过黑客手段使用WinAPI,请发布你的解决方案。 - Jake Berger
1个回答

0

您的问题处理角度有误。您需要关注虚拟桌面软件,而不是您的应用程序或Windows本身。

首先,对于Windows要使用您所需的双屏幕功能,您必须设置“扩展这些显示器”。如果没有这个设置,Windows或任何其他软件都无法使用第二个显示器。

其次,在“虚拟桌面软件”下,我假设您指的是远程桌面、TeamViewer或VNC等软件。所有这些程序都应该允许您选择是否显示所有显示器。例如,在远程桌面中,在连接之前,您可以选择选项-> 显示 -> 取消选中“在远程会话中使用我的所有监视器”。

另一方面,如果您正在寻找一种方法限制最终用户,以便他/她无论如何都无法访问或查看其他监视器,则必须找到一个虚拟桌面软件,只能显示主显示器(这可能非常困难,因为大多数软件都可以处理多显示器设置)。另一种解决方案是扩展您自己的软件以将其主屏幕输出流式传输到另一台机器并接受输入-可以考虑编写自己的虚拟桌面软件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接