Как разрешить пользователям взаимодействовать только с моей программой? - PullRequest
0 голосов
/ 06 сентября 2010

Пишу софт для колл-центра.Это похоже на программу ATM: пользователь может взаимодействовать только с ней, а не с операционной системой Windows.Он берет на себя управление, когда пользователь входит в Windows, а когда пользователь выходит, он выходит из Windows.

Как я могу это сделать в .NET?Демо будет высоко ценится.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 06 сентября 2010

Замените оболочку Windows.

Под этим я подразумеваю Explorer.exe, посредством редактирования реестра Windows. Для вас это не вход в систему, а система, в которой запущен Explorer.exe, состоящий из меню «Пуск», панели задач и других аналогичных функций, с которыми вы знакомы, only запускает вашу программу. Нет рабочего стола, контекстного меню, панели задач или меню «Пуск». Таким образом, делая ваше приложение «The Shell» или новый «Explorer.exe».

Однако, делая это, пользователь по-прежнему имеет доступ к Control + Alt + Delete, поэтому он по-прежнему сможет получить доступ к диспетчеру задач Windows, но вы также можете отключить его с помощью простого ввода ключа реестра.

Это самое безболезненное и простое решение, потому что вам даже не нужно беспокоиться о таких вещах, как отключение WindowsKey или другие неприятности.

Этот раздел реестра имеет следующий вид:

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon

Имя изменяемого значения:

Shell

И вы можете просто ввести значение, которое будет полным путем к исполняемому файлу вашей программы. Вы можете сделать это только в разделе HKEY_CURRENT_USER и только для учетной записи, которая должна запускать вашу оболочку . Таким образом, вам понадобятся два отдельных аккаунта.

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

Дополнительные примечания

Чтобы отключить диспетчер задач, путь к реестру выглядит следующим образом:

Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ System

Имя значения:

DisableTaskMgr

Это значение DWORD, которое для применения политики должно быть установлено в '1'.

0 голосов
/ 06 сентября 2010

Что вы хотите сделать, это запустить ОС в «режиме киоска».

Это предполагает использование консоли управления групповой политикой для применения шаблона режима киоска - в рамках этого вы регистрируете свое приложение в качестве оболочки.

Таким образом, нет панели задач или обозревателя, к которым можно вернуться. Единственный способ запустить обычную оболочку - подключить клавиатуру к системе - нажмите ctl-alt-delete и запустите explorer из всплывающего окна диспетчера задач.

И вы можете отключить даже стандартный диспетчер задач, если у пользователей будет доступ к консоли с клавиатуры. Возможно, вы захотите реализовать какой-то интерфейс запуска explorer.exe, иначе система может стать немного сложной в управлении: P

0 голосов
/ 06 сентября 2010

Вы можете установить окно ваших приложений так, чтобы оно всегда было сверху и покрывало весь экран. Если вы исключаете кнопки, закрывающие окно, пользователь должен знать, что ALT + F4 закрывает окно, чтобы выйти. Это было достаточно хорошо для меня, когда мне это было нужно.

0 голосов
/ 06 сентября 2010

Что я сделал, так это использовал DirectX и просто использовал полноэкранные и эксклюзивные режимы, которые вы можете увидеть на небольшом примере: http://www.directxtutorial.com/tutorial9/b-direct3dbasics/dx9B2.aspx.

Это больше работы, но она позволитделай, что хочешь.

В зависимости от того, какой у тебя контроль, есть некоторые шаги, которые ты можешь сделать с групповой политикой, чтобы ограничить то, что люди могут делать на компьютере.Вы можете посмотреть, как люди настраивают приложение киоска в Windows для некоторых идей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...