Я работаю над приложением, которое создает диашоу обоев рабочего стола (для установок с несколькими мониторами). Я хочу пропустить дисплеи, которые не видны, когда, например, какое-то другое приложение работает в полноэкранном режиме.
EDIT
Я устанавливаю обои, используя интерфейс IDesktopWallpaper
, который требуется DeviceId. Мне удалось получить DeviceNames (например, \. \ DISPLAY1) и DeviceIds (например, \? \ DISPLAY # GSM76FE # 5 & 3b13964d & 0 & UID4354 # {e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}), используя EnumDisplayDevices
. * 10
Теперь я пытаюсь получить их соответствующие рабочие столы, чтобы получить все windows на этом рабочем столе, чтобы проверить, покрывают ли они этот рабочий стол.
Я пробовал EnumDesktops
, как указано здесь, но он возвращает мне только имена «s» и «D», и я не могу OpenDesktop
их (он возвращает нулевой дескриптор, GetLastError
возвращает 2).