我想用AutoHotkey更改我的显示器输入源,我有部分工作。但是当我使用热键将监视器输入源从pc(DVI)更改为我的xbox(YPbYr)时,监视器没有检测到xbox已打开,它说没有来源。
Monitor =>华硕vg236
VCP Monitor输入我的显示器的源代码:
我正在使用Windows API Monitor Configuration Functions特别是使用DDC / CI的SetVCPFeature函数。
经过一些研究后,我决定将VCP输入源设置为第71页专门针对输入源的useful information。
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或所有输入。
问题:如何让我的显示器识别YBpYr已启用,因为现在显示器就像YBpYr未启用一样?
问题:我是否需要设置除0x60输入源以外的其他VCP代码值?