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

Я должен создать простое приложение Delphi, стиль киоска.

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

То, чего я хочу достигнуть, должно избежать, чтобы пользователь сделал любое действие, отличающееся затем ввод в TEdit или нажатие на TButton. Например, я не хочу, он делает ВКЛАДКУ ALT (переключающий приложения), нажимая клавишу окон на клавиатуре, делая ctrl-alt-canc, и т.д...

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

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

9
задан LaBracca 13 July 2010 в 10:42
поделиться

3 ответа

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

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

14
ответ дан 4 December 2019 в 10:30
поделиться

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

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

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

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

[boot]
shell=MiAplicacion.exe

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

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

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

ДОБАВЛЕНО: Кроме того, если вы поищете в Интернете что-то похожее на это "Delphi Change default windows shell", вы можете найти больше кода, примеров и информации об этом.

С уважением

P.D: Прошу прощения за ошибки в английском.

5
ответ дан 4 December 2019 в 10:30
поделиться

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

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

kindest regrads,
с!

1
ответ дан 4 December 2019 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: