问题标签 [virtual-screen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1251 浏览

wpf - 虚拟屏幕的 WPF 版本

是否有 System.Windows.Forms.SystemInformation.VirtualScreen 的 WPF 版本?

0 投票
1 回答
1816 浏览

c# - 主屏幕在虚拟屏幕中的位置

我可以在主屏幕或虚拟屏幕的某处将 wpf 窗口居中。但是,我想在整个虚拟屏幕上拉伸窗口,并在窗口中放置一个网格,使其填充主屏幕。下面的片段显示了我如何拉伸窗口、添加网格并拉伸网格以适应主屏幕尺寸,但是如何确定网格的位置(即边距)?

我可以绘制两个窗口,一个适合虚拟屏幕,另一个适合主屏幕,但这不是好方法。

0 投票
5 回答
7860 浏览

c# - 如何检查窗口在用户屏幕上是否完全可见?

有没有办法检查 WinForm 在屏幕上是否完全可见(例如没有超出屏幕范围?)

我已经尝试为此使用 SystemInformation.VirtualScreen,只要虚拟屏幕是一个矩形,它就可以很好地工作,但是一旦它不是(例如 L 形的 3 个屏幕),SystemInformation.VirtualScreen 返回包含所有的最小矩形可见像素(因此 L 右上角的窗口虽然在虚拟屏幕中但不可见)


我试图实现这一点的原因是我希望我的程序在它们所在的最后一个位置打开它的子​​窗口,但是如果用户更改设置,我不希望这些窗口不在视野中(例如从他的笔记本电脑上拔下额外的屏幕)

0 投票
1 回答
277 浏览

android - Android:如何知道虚拟屏幕的数量

我需要知道桌面的虚拟屏幕数量,但我不知道在哪里可以找到这些信息。

我想我需要访问启动器,但我不知道如何。

0 投票
0 回答
827 浏览

wayland - 在 Wayland 中转换虚拟屏幕

我的笔记本电脑屏幕顶部坏了,我无法查看 1600x82 矩形内的任何内容。

是否可以在 Wayland/XWayland 中转换虚拟屏幕,以便仅使用我的显示器的可见区域?

我设法使用 xrandr 在 X 中破解了一个解决方案:

但是,我也希望能够在 Wayland 中做到这一点。

0 投票
1 回答
348 浏览

wpf - Windows 10 虚拟桌面 - 同时两个输入(鼠标 + 触摸屏)

我尝试创建支持触摸屏和非触摸屏的 WPF 应用程序(.net Core 3.1),同时具有两个输入。

我找到了一个如何使用 VWvare 和 Virtual maschine 执行此操作的示例,这里是示例,但我想做一些更简单的事情,并且不安装第 3 方软件。

我想做一些类似于银行情况的事情。员工在电脑上工作,客户在触摸屏上“玩”应用程序。

我创建了两个应用程序部分(两个独立的 Windows),1. 用于主屏幕,2. 用于触摸屏。

当客户点击他们的屏幕时会出现问题,因此他将焦点从员工的屏幕上移开。

我认为这是一个窗口设置而不是一个应用程序。我创建了虚拟桌面,但它不能单独在触摸屏上输入。它总是从主屏幕上窃取焦点。请问如何在应用程序窗口中进行两个独立的输入?

0 投票
1 回答
381 浏览

remote-server - 如何在无头 ubuntu 服务器中运行多个需要 x 服务器的应用程序?

我在远程无头 ubuntu 服务器中有一个显卡。我已将 nvidia-xconfig 设置为进行虚拟显示。我需要虚拟 x 服务器,而不是 xvfb,以无头运行统一游戏,但录制游戏渲染视频。xvfb 确实可以正常工作,但它不使用显卡,这使得渲染非常慢。

如果我运行单个游戏,这适用于 xinit。

xinit ./game.x86_64 开始游戏并毫无问题地渲染游戏。

但是,当我尝试使用不同的 x 服务器同时启动多个游戏时:

xinit ./game1.x86_64 -- :0

xinit ./game2.x86_64 -- :1

这不能正确渲染。其中一个游戏(最先开始的那个)没有渲染。(查看录制的视频)据我所知,这是因为单个显卡只能运行单个x-server。

然后,我通过调整 xorg.conf 设置多个屏幕并尝试

xinit ./game1.x86_64 -- :0.0

xinit ./game2.x86_64 -- :0.1

然而,由于 xinit 试图启动一个新服务器,后者不起作用,告诉已经有一个 x-server 在 X:0 运行

如果我搜索多显示器 x-server 设置,我只能找到真实的显示器设置,但我需要的是虚拟显示器设置。

有没有办法在无头服务器中启动多个需要屏幕的应用程序?

我想我需要知道的是

  1. 一种启动具有多个屏幕的 x-server 并告诉应用程序使用哪个屏幕或

  2. 一种在控制台上远程使用 Windows 管理器的方法

如果有更好的解决方案,或者我错过了一些东西,那也会很有帮助。

0 投票
1 回答
225 浏览

c# - 使用多个显示器和不同 DPI 查找虚拟屏幕宽度

我正在尝试使用 模拟鼠标输入SendInput,但是如果有多个监视器,我需要确定虚拟屏幕宽度,以设置dxdy值,例如:

问题是显示器显然具有不同的 DPI 值,这会导致虚拟大小不正确。作为参考,SystemInformation.VirtualScreen.Size和 调用都GetSystemMetrics(SM_CXVIRTUALSCREEN)返回相同的错误值。

我尝试使用GetSystemMetricsForDPI也没有成功。

0 投票
0 回答
16 浏览

windows - 如何可靠地识别 Direct3D9“设备”何时映射到哪个 Windows GDI“监视器”?

我正在尝试使用它获取多个监视器的屏幕截图IDirect3DDevice9::GetFrontBufferData()并且它可以工作,但我无法弄清楚我如何识别哪个IDirect3DDevice9对应于哪个监视器以及它的输出如何定位在 Windows“虚拟屏幕”上。

我尝试过IDirect3DDevice9::GetViewport(),但它总是获得左上坐标设置为“0,0”(以及适当的宽度和高度)的视口坐标,因此它不能用于识别哪个显示器是左边的,哪个是右边的。

到目前为止,我发现当我调用时,EnumDisplayMonitors()监视器会按顺序枚举,因为我调用时会枚举设备,IDirect3D9::GetAdapterDisplayMode()并且可以使用它。但是,我没有看到文档说明这两个函数是否保证任何枚举顺序。

我可以依赖EnumDisplayMonitors()IDirect3D9::GetAdapterDisplayMode()拥有相同的枚举顺序吗?有没有更好的办法?