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