Я снимаю экран, используя CopyFromScreen .Когда кто-то блокирует компьютер, он начинает выдавать исключение System.ComponentModel.Win32Exception (0x80004005): The handle is invalid
.Чтобы избежать этого, я проверяю текущее состояние сеанса, используя SystemState.SessionSwitch .Это хорошее решение, но когда я снимаю экран со скоростью 30 снимков в секунду, то достаточно быстро сработать это исключение в 1/2 раза, прежде чем я переключу состояние флага в событии SessionSwitch
.Есть ли способ проверить текущее состояние сеанса в блоке catch
или проверить, действителен ли дескриптор, прежде чем я вызову CopyFromScreen
?