рд╕рднреА рдореЙрдирд┐рдЯрд░ рдФрд░ рдЙрдирдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХреИрд╕реЗ рдХрд░реЗрдВ

рдЫрд╡рд┐
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдВрдбреЛ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд╕рд╛рде рд╡реНрдпрд╕реНрдд рдерд╛, рдФрд░ рдХрд╛рд░реНрдп рд╕рднреА рдореЙрдирд┐рдЯрд░ рдФрд░ рдЙрдирдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдерд╛ред рдореИрдВ рдпрд╣рд╛рдВ рдкрдж-рдкреНрд░рддрд┐рд╖реНрдард╛ рдХрд╛ рд╣рд▓ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред

appRet aApplication::ObtainMonitors() { DWORD i = 0; DWORD j; DISPLAY_DEVICE dc; dc.cb = sizeof(dc); while(EnumDisplayDevices(NULL, i, &dc, EDD_GET_DEVICE_INTERFACE_NAME) != 0) { if ((dc.StateFlags & DISPLAY_DEVICE_ACTIVE) && !(dc.StateFlags & DISPLAY_DEVICE_MIRRORING_DRIVER)) { DEVMODE dm; j = 0; while(EnumDisplaySettings(dc.DeviceName, j, &dm) != 0) { // DEVMODE dm,         // ChangeDisplaySettings,     ++j; } } ++i; } if (i == 0) return APP_NOMON; return APP_DONE; } 

рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреМрди рд╕реЗ рдЙрдкрдХрд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдореЗрдВ рдЪрдХреНрд░реЛрдВ рдореЗрдВ рдЪрд▓рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, EnumDisplayDevices рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ , рд╣рдо рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рддреНрд░ рдореЗрдВ рд╕рднреА рдореЙрдирд┐рдЯрд░реЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░, рдЕрдЧрд░ (dc.StateFlags & DISPLAY_DEVICE_ACTIVE рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ) рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ "рдореЙрдирд┐рдЯрд░" рд╕рдВрдЪрд╛рд░ рдореЗрдВ рд╣реИ рдФрд░ рд╕реЛ рдирд╣реАрдВ рд░рд╣рд╛ рд╣реИред рдареАрдХ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЙрд╕рдХрд╛ рдирд╛рдо dc.DeviceName рдореЗрдВ рдЦреЛрдЬрддреЗ рд╣реИрдВ рдФрд░ EnumDisplaySettings рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ "рдореЙрдирд┐рдЯрд░" рдХреА рд╕рднреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдПрд▓рдЬреА рдЯреАрд╡реА рдХреЛ рд▓реИрдкрдЯреЙрдк рд╕реЗ тАЛтАЛрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛: рдпрд╣ рдлрд╝реАрдб, рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдкрдпреЛрдЧ рднреА рдХрд░рддрд╛ рд╣реИред

UPD : рдЧреБрдг рддреНрдпрд╛рдЧрдиреЗ рдХреЗ рд▓рд┐рдП DISPLAY_DEVICE_MIRRORING_DRIVER рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдбрд┐рд╡рд╛рдЗрд╕ред рдзрдиреНрдпрд╡рд╛рдж рд╢реНрд░реАрдХреБрд╕


Source: https://habr.com/ru/post/In151273/


All Articles