Заставка: рисовать перед экраном блокировки

Мне нужно создать заставку, которая просто рисует картинку и отображает некоторую информацию вокруг нее. Это все не проблема.

Проблема в том, что я хотел бы заблокировать экран, что я и делаю с помощью API-вызова.

Private Declare Function LockWorkStation Lib "user32.dll" () As Long
Call LockWorkStation()

и на самом деле моя заставка нарисована поверх экрана блокировки. это не работает, так как экран блокировки скрывает любое окно, запущенное пользователем.

Есть ли способ программно заставить окно оставаться впереди всего?

Я пробовал использовать Tipp 0214 с сайта activevb.de (страница находится в Немецкий, но основное должно быть понятно даже англоязычным читателям) но это только для всех остальных окон, а не для локскрина.

Да, это должен быть VB6, и переход на .NET невозможен из-за потребления памяти.


person Atmocreations    schedule 22.09.2009    source источник


Ответы (1)


Не могли бы вы вместо этого вызвать блокировку рабочей станции при деактивации в качестве заставки? Кроме того, я полагаю, вы знаете, что ОС поддерживает это как функцию?

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

person Rowland Shaw    schedule 22.09.2009
comment
Ну и блокировка экрана после выхода моего приложения было бы решением! Но безопасно ли это? Не мог ли кто-нибудь убить приложение, чтобы оно не вызывало метод блокировки? Если вы имеете в виду, что ОС поддерживает этот маленький флажок Защита паролем или что-то подобное, то это, похоже, не работает... - person Atmocreations; 22.09.2009
comment
+1 Кажется, я помню то же самое о перерисовке окон входа в систему. Только что попробовал гуглить подтверждение в документации, но не повезло - сегодня Сила во мне слаба. - person MarkJ; 22.09.2009
comment
@Atmocreations Не уверен, как они убьют вашу заставку, если она работает (в конце концов, я ожидаю, что вы отключите заставку при вводе с помощью мыши или клавиатуры...) - person Rowland Shaw; 22.09.2009
comment
@Rowland: конечно, буду. Просто хотел узнать, могу ли я столкнуться с трудностями - person Atmocreations; 22.09.2009