Mój problem polega na włączeniu wyłączonego monitora z ChangeDisplaySettingsEx
. Przypuszczam, że to nie jest nauka o rakietach, ale po jakimś kopaniu wciąż wydaje się niemożliwe. Znalazłem sposób wyłączenia wszystkich wyświetlaczy pomocniczych w oparciu o próbkę kodu Microsoft znalezioną pod numerem here. Podczas gdy do pracy potrzebna była tylko podstawowa zmiana, ponowne dołączanie nigdy nie działało. Co starałem się zrobić to:Dołącz wyłączone urządzenie wyświetlające za pomocą interfejsu WinAPI
1. Inicjowanie DisplayDevice
BOOL FoundSecondaryDisp = FALSE;
DWORD DispNum = 0;
DISPLAY_DEVICE DisplayDevice;
LONG Result;
TCHAR szTemp[200];
int i = 0;
DEVMODE defaultMode;
ZeroMemory(&DisplayDevice, sizeof(DisplayDevice));
DisplayDevice.cb = sizeof(DisplayDevice);
2. Znajdź wszystkie urządzenia
while (EnumDisplayDevices(NULL, DispNum, &DisplayDevice, 0))
{
ZeroMemory(&defaultMode, sizeof(DEVMODE));
defaultMode.dmSize = sizeof(DEVMODE);
//point 3 goes here
}
3. Wykrywanie wolnostojącego urządzenia
if (!(DisplayDevice.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP))
4. Włącz urządzenie
DEVMODE DevMode;
ZeroMemory(&DevMode, sizeof(DevMode));
DevMode.dmSize = sizeof(DevMode);
DevMode.dmFields = DM_POSITION | DM_PELSWIDTH | DM_PELSHEIGHT;
DevMode.dmPelsWidth = 1920;
DevMode.dmPelsHeight = 1080;
Result = ChangeDisplaySettingsEx(DisplayDevice.DeviceName, &DevMode, NULL, CDS_UPDATEREGISTRY, NULL);
ChangeDisplaySettingsEx(NULL, NULL, NULL, NULL, NULL);
ostatni punkt zwrotów kod DISP_CHANGE_FAILED i to nie pozwoli wyświetlacz. Czy ktoś miał podobne doświadczenia?
Dziękuję za wejście! Monitor ** został ** wyłączony za pomocą 'ChangeDisplaySettingsEx()', mój pełny program testowy wyłącza wyświetlanie wtórne i próbuje je przywrócić, obie używając 'ChangeDisplaySettingsEx()'. – Artur