Как создать киоск-подобный интерфейс, чтобы пользователь никогда не мог выйти из него или переключиться на другое приложение?
Мне нужно создать простое приложение Delphi в стиле киоска.
Это очень простая вещь, единая форма, где пользователь записывает некоторую личную информацию для регистрации на событие. 4 TEdit и TButton.
То, чего я хочу добиться, - это избегать действий пользователя, отличных от ввода TEdit или нажатия кнопки TButton. Например, я не хочу, чтобы он делал ALT TAB (переключение приложений), нажимал клавишу Windows на клавиатуре, делал ctrl-alt-canc и т.д...
Я могу добавить кнопку, защищенную паролем, которая включает / отключает этот "режим киоска", таким образом, когда мне нужно выйти из режима киоска, я просто нажимаю эту кнопку и выхожу.
Как добиться этого "режима киоска" в Delphi без перехвата всех нажатий клавиш вручную? Или кто-нибудь уже разработал это, чтобы им можно было поделиться?
3 ответа
Я думаю, вам лучше создать новый рабочий стол и запустить там свое приложение. Когда ваше приложение будет готово, вы можете вернуть рабочий стол пользователя. Так работает экран входа в Windows. Конечно, экран входа в Windows использует специальный безопасный рабочий стол. Ваше приложение на отдельном рабочем столе будет изолированным. У вас будет фон рабочего стола без меню "Пуск", панели задач или значков на рабочем столе, так как explorer.exe там не запускается автоматически. Конечно, можно запустить новый процесс с помощью диспетчера задач, но рабочие столы в Windows являются защищаемыми объектами; следовательно, вы можете сделать ограничения, если хотите. Конечно, если ваше приложение имеет достаточные разрешения.
Чтобы создать новый рабочий стол, вы можете использовать Windows API CreateDesktop, а чтобы переключиться на вновь созданный рабочий стол, вы можете использовать функцию OpenDesktop.
Вы можете попробовать изменить оболочку Windows.
Когда вы запускаете Windows, вы не запускаете оболочку по умолчанию (explorer.exe), вы можете запустить свое приложение.
В Интернете вы можете найти альтернативную оболочку (более привлекательную) для окон по умолчанию, например:
Эта опция используется для аналогичных целей в разрабатываемом вами приложении. Киоски или ТПВ.
Для изменения приложения по умолчанию вы должны изменить раздел реестра:
В Win3.x и Win9x файл SYSTEM.INI:
[boot]
shell=MiAplicacion.exe
В Win2k и WinXP используйте Registry:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
Shell=MiAplicacion.exe
Если вы проверяете эту опцию, подумайте о режиме, чтобы превратить конфигурацию в исходное значение (кнопка или опция). Вы должны перезагрузиться, чтобы проверить изменения.
ДОБАВЛЕНО: Кроме того, если вы будете искать в Интернете что-то похожее в этой "оболочке Windows по умолчанию для Delphi Change", вы сможете найти больше кода, примеров и информации об этом.
С уважением
PD: Извините за ошибки с английским.
Хорошо, но если кто-то может открыть taskmgr, он может просто создать новое задание и запустить оттуда explorer.exe, так что это не совсем безопасно...
Ok Taskmgr можно остановить с помощью политик... Ну, а для отключения последовательности cad вы можете использовать saslibex, созданный Ремко Вейненом, вы можете найти его здесь: SASLibEx
самые добрые реграды,
s!