Как проверить, отображается ли заданный фон рабочего стола c или приложение работает в полноэкранном режиме? - PullRequest
1 голос
/ 20 июня 2020

Я работаю над приложением, которое создает диашоу обоев рабочего стола (для установок с несколькими мониторами). Я хочу пропустить дисплеи, которые не видны, когда, например, какое-то другое приложение работает в полноэкранном режиме.

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).

...