Как я могу расширить все мониторы в Windows 11 с помощью CCD API?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу расширить все мониторы в Windows 11 с помощью CCD API?

Сообщение Anonymous »

Как я могу заставить всех мониторов быть расширены в 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»