Обнаружена функция _ArraySearch (), которая позволяет мне искать значение в массиве и возвращает разные флаги в зависимости от того, что он находит или не находит.Поэтому я могу создать массив со всеми значениями, а затем выполнить _ArraySearch () для $ _enum [3] для массива.
РЕДАКТИРОВАТЬ: Это то, что я закончил:
Dim $x = 0, $y = 0, $_enum, $_PhysMon[15] = [1,2,8,32,3,9,33,10,34,40,11,35,36,42,51], $_DefMon[8] = [2,3,10,34,11,35,42,43]
Do
$_enum = _WinAPI_EnumDisplayDevices("", $x)
$_physCheck = _ArraySearch($_PhysMon, $_enum[3])
$_defCheck = _ArraySearch($_DefMon, $_enum[3])
$x+=1
msgbox(0,"","Phys Check: " & $_physCheck & @LF & "Def Check: " & $_defCheck)
If $_physCheck <> -1 AND %_defCheck <> -1 Then
msgbox(0,"","Monitor " & $x & " IS THE PHYSICAL DEFAULT MONITOR")
ElseIf $_physCheck <> -1 Then
msgbox(0,"","Monitor " & $x & " IS A PHYSICAL MONITOR")
Else
msgbox(0,"","Monitor " & $x & " IS A VIRTUAL MONITOR")
EndIf
Until NOT $_enum[3]
Я установил все возможные комбинации флагов и успешно проанализировал, какие мониторы являются реальными (физическими), а не реальными (виртуальными), и я даже определил отображение машины по умолчанию.