这个我个人没有测试,但是你可以试试这个库,看看它是否可以设置EDID信息没有任何问题,如果失败,请打开一个问题。
https://github.com/falahati/NvAPIWrapper
这是你应该如何做的,
- 首先,您需要找到正确的
DisplayDevice
或GPUOutput
您想要写入 EDID 信息的位置。有多种方法可以做到这一点。
- 使用静态方法获取系统中所有
PhysicalGPU
s的列表,然后根据您的逻辑选择您想要的。找到正确的 后,使用该方法获取所有连接到该 GPU 的列表,并将正确的存储在变量中。NvAPIWrapper.GPU.PhysicalGPU.GetPhysicalGPUs()
PhysicalGPU
PhysicalGPU
NvAPIWrapper.GPU.PhysicalGPU.GetDisplayDevices()
DisplayDevice
- 除了搜索连接
DisplayDevice
的 s,您还可以搜索GPUOutput
s。和以前一样,首先需要找到正确的PhysicalGPU
,然后您可以使用该属性获取所有GPUOutput
s的列表并将该权利存储在一个变量中。NvAPIWrapper.GPU.PhysicalGPU.ActiveOutputs
GPUOutput
- 找到正确
DisplayDevice
的另一种方法是列出所有Displays
. 为此,您需要使用NvAPIWrapper.Display.Display.GetDisplays()
静态方法。这将返回一个 s 数组Display
。然后使用该NvAPIWrapper.Display.Display.DisplayDevice
属性,可以得到对应DisplayDevice
的 a Display
。
- 找到正确的
DisplayDevice
or后GPUOutput
,您应该使用该NvAPIWrapper.GPU.PhysicalGPU.WriteEDIDData()
方法。此方法允许您将存储在字节数组中的 EDID 数据写入您之前选择的DisplayDevice
或GPUOutput
。
注意:确保捕获NVIDIAApiException
并检查NVIDIAApiException.Status
财产,以防出现问题。