更改监视器input源

我想用AutoHotkey更改我的显示器input源,我有这个部分工作。 但是,当我使用热键更改显示器input源到我的Xbox(YPbYr)从PC(DVI),显示器不检测到Xbox打开,它说没有源。

显示器=> Asus vg236

VCP监视器input我的监视器的源代码:

  • DVI => 3
  • HDMI => 4
  • YPbPr => 12

我正在使用Windows API监视器configuration函数,特别是使用DDC / CI的SetVCPFeature函数。

经过一番研究,我决定要设置VCPinput源,这里有一些有用的信息,特别是关于input源的第71页。

AutoHotkey代码:

setMonitorSource(source) { ; Initialize Monitor handle hMon := DllCall("MonitorFromPoint" , "int64", 0 ; point on monitor , "uint", 1) ; flag to return primary monitor on failure ; Get Physical Monitor from handle VarSetCapacity(Physical_Monitor, (A_PtrSize ? A_PtrSize : 4) + 128, 0) DllCall("dxva2\GetPhysicalMonitorsFromHMONITOR" , "int", hMon ; monitor handle , "uint", 1 ; monitor array size , "int", &Physical_Monitor) ; point to array with monitor hPhysMon := NumGet(Physical_Monitor) DllCall("dxva2\SetVCPFeature" , "int", hPhysMon , "char", 0x60 ;VCP code for Input Source Select , "uint", source) ; Destroy handle DllCall("dxva2\DestroyPhysicalMonitor", "int", hPhysMon) } !z:: setMonitorSource(12) return 

我想知道是否需要在某处设置另一个VCP代码值以通知监视器源已更改。

:我没有HDMI设备,所以我不能说这是否只影响YPbYr或所有input。

问题 :如何让我的显示器识别YBpYr已打开,因为现在的显示器就像YBpYr不在?

:是否需要设置除0x60input源以外的其他VCP代码值?

Solutions Collecting From Web of "更改监视器input源"