哪个注册表项或 Windows 文件决定监视器在多监视器环境中的位置?

哪个注册表项或 Windows 文件决定监视器在多监视器环境中的位置?

我有一台笔记本电脑USB 转 VGA 适配器这使我可以在我的笔记本电脑上添加第三台显示器(第二台显示器使用板载插槽)。

在 Windows Vista 上,它运行良好 - 您可以进入 Windows 的显示设置,Windows 会识别第三台显示器并允许您相应地拖动它。在 Windows 7 上,第三台显示器实际上并不在 Windows 的显示设置中。驱动程序允许您显示到第三台显示器,但您无法移动它的位置。显示设置相对于我的其他两个显示器放错了位置(如果您将窗口拖到它上面,它们最终会位于底部,而它应该是对齐的)。

我打电话给技术支持,他们说 Windows 7 还没有具有此功能的驱动程序。但我的直觉是这样的。显示器的位置仍然与我在 Vista 上的位置有些相似,只是偏离了大约 500 像素左右。我认为某个地方的注册表项或驱动程序文件告诉这个显示器应该存在哪里。如果我可以修改数字并将其上移 500 像素,它就会出现在正确的位置,而我也不必等待 6 个月才能让公司推出新的驱动程序。

有任何想法吗?

答案1

查看各种键和文件夹

HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Video

具体来说,最里面的MonXXXXXXX子文件夹应该是Attach.RelativeXAttach.RelativeY值,它们是监视器相对于像素 0,0 的位置。

奇怪的是,当我在这里检查一台带有两个显示器的 Windows 7 机器时,它似乎没有显示第二个显示器。但我的 XP 机器显示了所有三个显示器,因此您的情况可能会有所不同。

如果没有别的,这是一个开始的地方!

答案2

对于在 Windows 7 中寻找密钥的任何人来说,它位于以下文件夹之一:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\

Position.cx在每个子文件夹中查找Position.cy;您必须编辑十六进制字符串。

二进制/十进制/十六进制转换器:

http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

答案3

从 4294967296 中减去您想要减去的数额,即可得到注册表所需的数字。即 4294967296 - 250 = 4294967046。

对于你们这些极客来说……

这里的烦恼是由于注册表编辑器不会将 32 位解释为无符号十进制整数或二进制数据的十六进制表示以外的任何值。但是,当 Windows 在定位显示器时检索该二进制数据时,它会将其解释为有符号整数。为了让 Windows 知道 32 位有符号整数为负数,它会将最后一位设置为 1(最左边),其余位则被反转。因此 -1 的二进制值为 11111111 111111111 111111111 11111111(十六进制:FF FF FF FF)。如果将其转换为无符号十进制整数(就像注册表编辑器所做的那样),则会得到 4,294,967,295。因此,就我们的目的而言,0 等于 4,294,967,296,您只需将负数添加到它即可获得所需的无符号十进制整数,注册表编辑器会以二进制形式保存该整数,并且系统稍后会将其解释为带负符号的整数。

答案4

针对 Windows 10 对这个旧线程进行快速更新。

Attach.RelativeX 和 Attach.RelativeY 键位于此处:

计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UnitedVideo\CONTROL\VIDEO\

在其下方会有机器的键和每个显示器的子键 >00、>01 等等。

负面定位的相同规则仍然适用。

相关内容