Как создать киоск-подобный интерфейс, чтобы пользователь никогда не мог выйти из него или переключиться на другое приложение? - PullRequest
8 голосов
/ 13 июля 2010

Мне нужно создать простое приложение Delphi в стиле киоска.

Это очень простая вещь, единая форма, в которой пользователь записывает некоторую личную информацию для регистрации на событие. 4 TEdit и TButton.

Чего я хочу добиться, так это избегать действий пользователя, отличных от ввода TEdit или нажатия кнопки TButton. Например, я не хочу, чтобы он делал ALT TAB (переключение приложений), нажимал клавишу windows на клавиатуре, делал ctrl-alt-canc и т.д ...

Я могу добавить кнопку, защищенную паролем, которая включает / отключает этот «режим киоска», таким образом, когда мне нужно выйти из режима киоска, я просто нажимаю эту кнопку и выходу.

Как добиться этого «режима киоска» в Delphi, не перехватывая все нажатия клавиш вручную? Или кто-нибудь уже разработал это, чтобы им можно было поделиться?

Ответы [ 3 ]

14 голосов
/ 13 июля 2010

Я думаю, вам лучше создать новый рабочий стол и запустить там свое приложение. Когда ваше приложение будет готово, вы можете вернуть рабочий стол пользователя. Так работает экран входа в Windows. Конечно, экран входа в Windows использует специальный безопасный рабочий стол. Ваше приложение на отдельном рабочем столе будет изолированным. У вас будет фон рабочего стола без меню «Пуск», панели задач или значков рабочего стола, потому что explorer.exe там не запускается автоматически Конечно, можно запустить новый процесс с помощью диспетчера задач, но рабочие столы в Windows являются защищаемыми объектами; следовательно, вы можете сделать ограничения, если хотите. Конечно, если ваше приложение имеет достаточные разрешения.

Чтобы создать новый рабочий стол, вы можете использовать CreateDesktop Windows API, а для переключения на вновь созданный рабочий стол вы можете использовать функцию OpenDesktop.

5 голосов
/ 13 июля 2010

Вы можете попробовать Изменить оболочку Windows.
Когда вы запускаете Windows, вы не запускаете оболочку по умолчанию (explorer.exe), вы можете запустить свое приложение.

В Интернете можно найти альтернативную оболочку (более привлекательную) для окон по умолчанию, например:

Этот параметр используется для аналогичных целей в разрабатываемом приложении. Киоски или ТПВ.
Для изменения приложения по умолчанию вы должны изменить раздел реестра:

В Win3.x и Win9x, файл SYSTEM.INI:

[boot]
shell=MiAplicacion.exe

В Win2k и WinXP используйте реестр:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
Shell=MiAplicacion.exe 

Если вы проверяете эту опцию, подумайте, какой режим превратить конфигурацию в исходное значение (кнопка или опция). Вы должны перезагрузиться, чтобы проверить изменения.

ДОБАВЛЕНО: Кроме того, если вы будете искать в Интернете что-то похожее в этой «оболочке Windows по умолчанию для Delphi Change», вы сможете найти больше кода, примеров и информации об этом.

Привет

P.D: Извините за ошибки с английским.

1 голос
/ 13 июля 2010

Хорошо, но если кто-то может открыть taskmgr, он может просто создать новое задание и запустить оттуда файл explorer.exe, так что это не очень безопасно ...

Ok Taskmgr можно остановить с помощью политик ...Ну а для отключения последовательности cad вы можете использовать saslibex, созданный Ремко Вейненом, вы можете найти его здесь: SASLibEx

добрейших реградов,
s!

...