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