Как я могу заставить всех мониторов быть расширены в Windows 11 с помощью CCD API? Если это невозможно, существует ли надежная альтернатива для обеспечения расширенной конфигурации дисплея для системы независимо от каких -либо новых подключений к мониторе? Я нашел несколько разных источников для использования этого API, но не для того, как использовать его для расширения специфических мониторов или всех мониторов, которые подключены к системе.
Например, Microsoft предоставляет этот выбор Отображение. Пары, только одна пара будет расширена с помощью исполняемого файла Display Switch).
Я также попытался использовать функцию setDisplayConfig из user32.dll несколькими способами. Эффект как исполняемый файл выключателя дисплеев.
Код: Выделить всё
clonedPath.sourceInfo.id = UINT32_MAX;
clonedPath.sourceInfo.modeInfoIdx = DISPLAYCONFIG_PATH_MODE_IDX_INVALID;
clonedPath.targetInfo.modeInfoIdx = DISPLAYCONFIG_PATH_MODE_IDX_INVALID;
SetDisplayConfig(static_cast(paths.size()), paths.data(), static_cast(modes.size()), modes.data(), SDC_APPLY | SDC_ALLOW_CHANGES | SDC_SAVE_TO_DATABASE | SDC_USE_SUPPLIED_DISPLAY_CONFIG);
< /code>
Но если я клон отображается через настройки Windows для отображения вышеуказаного кода, приводит к тому, что один из клонированных дисплеев отключается от рабочего стола.SetDisplayConfig(static_cast(paths.size()), paths.data(), static_cast(modes.size()), modes.data(), SDC_APPLY | SDC_ALLOW_CHANGES | SDC_SAVE_TO_DATABASE | SDC_USE_SUPPLIED_DISPLAY_CONFIG);
, где paths и режимы - буферы, возвращаемые из вызова getDisplayConfigbuffersisizes и QueryDisplayConfig (с QDC_ONLY_ACTICE_PATHS и никаких изменений). Я получаю то же поведение, где одно из клонированных дисплеев. Чтобы попытаться полностью имитировать пути и режимы, которые устанавливаются после того, как Windows расширяет дисплей (то есть я захватил состояние конфигурации дисплея для активных путей с помощью QueryDisplayConfig после расширения всех дисплеев через настройки Windows). Путь экземпляра устройства Pnpentity), в случае клонирования Windows, один из клонированных мониторов имеет некоторый альтернативный цифровой идентификатор. Поэтому я попытался имитировать полные пути и режимы для полностью расширенной конфигурации дисплея, только для того, чтобы прийти к одной и той же проблеме, когда один из клонированных дисплеев, становящихся отключенными. Когда я пытаюсь сделать то же самое с SetDisplayConfig . Я также заметил что -то подобное с редакторами для ключей реестра, которые производятся при мониторинге вызовов, выполняемых SystemsEttings.exe с использованием procmon. Не уверен, хотя это только еще одна красная сельдь.
Подробнее здесь:
https://stackoverflow.com/questions/797 ... he-ccd-api