Il mio problema è abilitare un monitor disabilitato con ChangeDisplaySettingsEx
. Immagino non sia una scienza missilistica, ma dopo averla scavata sembra ancora impossibile. Ho trovato un modo per disabilitare tutti gli schermi secondari in base al codice Microsoft trovato campione here. Mentre era necessario solo il minimo aggiustamento di base per funzionare, il riattacco non funzionava mai. Quello che stavo cercando di fare era:Collegare il dispositivo di visualizzazione disabilitato con WinAPI
1. Inizializzare 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. Trovare tutti i dispositivi
while (EnumDisplayDevices(NULL, DispNum, &DisplayDevice, 0))
{
ZeroMemory(&defaultMode, sizeof(DEVMODE));
defaultMode.dmSize = sizeof(DEVMODE);
//point 3 goes here
}
3. Rileva dispositivo indipendente
if (!(DisplayDevice.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP))
4. Attivare dispositivo
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);
rendimenti ultimo punto codice DISP_CHANGE_FAILED e non permette di visualizzazione. Qualcuno ha avuto un'esperienza simile?
Grazie per l'input! Il monitor ** era ** disabilitato con 'ChangeDisplaySettingsEx()', il mio programma di test completo disabilita i display secondari e li prova a riabilitarli, entrambi usando 'ChangeDisplaySettingsEx()'. – Artur