Я пытаюсь создать приложение, которому необходимо заблокировать доступ к ПК во время его работы. Мне нужно, чтобы приложение выполнялось в верхней части экрана, в полноэкранном режиме, и убедитесь, что alt-tabbing не разрешает доступ к другим приложениям или панели задач.WPF в режиме киоска - проблемы с панелью задач
До сих пор я установил TopMost = true, WindowStyle = WindowStyle.None и WindowState = WindowState.Maximized, который достигает большей части того, что мне нужно, но я все еще получаю экземпляры, где панель задач становится видимой. Я попытался реализовать поведение LostFocus в окне, но это не похоже на то, что мне нужно.
Может ли кто-нибудь указать мне, в каком направлении мне нужно реализовать это поведение, пожалуйста?
Дополнительная информация
К сожалению, природа этого проекта такова, что мы не можем изменить клиентские машины, и они работают смесь XP, Vista и Win7. ПК не принадлежат нам, но должны использоваться для доставки контента как можно безопаснее. Владельцы ПК знают об ограничениях на запуск программного обеспечения и счастливы, что они будут «заблокированы» во время выполнения нашего приложения, но в противном случае они не могут быть изменены.
Другие способы
HakonB упомянул BabySmash приложение Скотта Хансельман, так что я пошел искать его пути урегулирования ситуации. Как говорит HakonB, это не самый чистый метод обработки потерянного фокуса, но, похоже, он работает или, по крайней мере, должен делать, пока я не найду лучшее решение. Он использует таймер, который срабатывает каждую секунду, и запускает вызов метода SetForegroundWindow (IntPtr hWnd) пользователя user32.dll для захвата фокуса, независимо от того, имеет ли он фокус или нет. Спасибо за хедз-ап, HakonB!
Вы знаете, что есть версия киоска в ОС Windows (я думаю, что XP Embedded или что-то)? Возможно, это удовлетворит ваши потребности :) – OregonGhost
TaskBar визуализируется Explorer.exe, поэтому вы можете убить это или предотвратить его запуск. Я смутно помню, что есть раздел реестра, который выбирает оболочку Windows - возможно, это можно удалить, чтобы никакая оболочка не запускалась. Вы все равно сможете запустить Explorer вручную с помощью диспетчера задач (из Ctrl-Shift-Escape или Ctrl-Alt-Delete). –
К сожалению, характер этого проекта таков, что мы не можем изменить клиентские машины, и они используют сочетание XP, Vista и Win7. ПК не принадлежат нам, но должны использоваться для доставки контента как можно безопаснее. Я тоже обновлю вопрос. – ZombieSheep