У нас есть ночной процесс, который обновляет приложения на компьютере пользователя, и для этого требуется выключить и снова выполнить приложение (не пытаясь изменить этот процесс).
Проблема в том, что при запуске мы создаем панель приложений Windows, для которой требуется действующий экран, а когда система заблокирована, в классе Screen ее нет. Таким образом, ни один из визуальных эффектов не включен, и он действительно выглядит ужасно.
Единственный способ, которым мы сейчас располагаем, это обнаружить заблокированный экран и просто вращаться и ждать, пока пользователь разблокирует рабочий стол, а затем продолжить запуск. Отказ от этого не вариант, так как это ключевая часть рабочего процесса нашего пользователя, и они ожидают, что он будет запущен, если он оставил его таким же вечером.
Есть идеи? Кажется, я нигде не могу найти отображаемую информацию, но ее нужно где-то хранить, поскольку пользователь все еще вошел в систему.
Содержимое массива Screen.AllScreens:
** Когда заблокировано:
Device Name : DISPLAY
Primary : True
Bits Per Pixel : 0
Bounds : {X=-1280,Y=0,Width=2560,Height=1024}
Working Area : {X=0,Y=0,Width=1280,Height=1024}
** Когда разблокировано:
Device Name : \\.\DISPLAY1
Primary : True
Bits Per Pixel : 32
Bounds : {X=0,Y=0,Width=1280,Height=1024}
Working Area : {X=0,Y=0,Width=1280,Height=994}
Device Name : \\.\DISPLAY2
Primary : False
Bits Per Pixel : 32
Bounds : {X=-1280,Y=0,Width=1280,Height=1024}
Working Area : {X=-1280,Y=0,Width=1280,Height=964}