PC가 실행되는 동안 PC에 대한 액세스를 잠그지 않아야하는 응용 프로그램을 작성하려고합니다. 앱을 전체 화면 모드에서 최상위로 실행하고 alt-tabbing으로 다른 앱이나 작업 표시 줄에 액세스 할 수 없도록해야합니다.키오스크 모드의 WPF - 작업 표시 줄 문제
지금까지 TopMost = true, WindowStyle = WindowStyle.None 및 WindowState = WindowState.Maximized를 설정하여 필요한 대부분을 구현했지만 여전히 작업 표시 줄이 표시되는 인스턴스를 얻습니다. 창에서 LostFocus 동작을 구현하려고 시도했지만 필요한 동작을 제공하지 않는 것 같습니다.
누구든지이 동작을 구현하는 데 필요한 방향으로 나를 가리킬 수 있습니까?
불행하게도,이 프로젝트의 본질은 우리가 클라이언트 시스템을 변경할 수 없도록하고, 그들이 XP, Vista 및 Win7에의 혼합을 실행하는 정보 추가. PC는 우리 소유가 아니지만 가능한 한 안전하게 콘텐츠를 전달하는 데 사용해야합니다. PC 소유자는 소프트웨어 실행에 대한 제한 사항을 알고 있으며 응용 프로그램을 실행하는 동안 "잠긴"것이 좋지만 변경할 수는 없습니다.
다른 방법
HakonB 언급 스콧 Hanselman은의 BabySmash 응용 프로그램, 그래서 나는 상황을 처리하는 자신의 방법을 찾고 갔다. HakonB가 말했듯이, 초점을 잃는 것을 처리하는 가장 깨끗한 방법은 아니지만, 더 좋은 해결책을 찾을 때까지는 효과가있는 것처럼 보입니다. 그는 초마다 발생하는 타이머를 사용하고 포커스가 있는지 여부에 관계없이 포커스를 잡기 위해 user32.dll의 SetForegroundWindow (IntPtr hWnd) 메서드 호출을 시작합니다. 헤드 업, HakonB 주셔서 감사합니다!
Codeplex에서 프로젝트를 찾을 수의 Windows 키오스크 버전가 있다는 것을 알고 계십니까 (나는 그것이 XP 임베디드 또는 뭔가 생각)? 어쩌면 그건 스위트가 필요합니다 :) – OregonGhost
TaskBar는 Explorer.exe에 의해 렌더링되므로이를 죽이거나 시작하지 못하도록 할 수 있습니다. 나는 윈도우 셸을 선택하는 레지스트리 키가 있음을 막연히 기억하고 있습니다. 이것은 셸이 시작되지 않도록 제거 될 수 있습니다. 작업 관리자 (Ctrl-Shift-Escape 또는 Ctrl-Alt-Delete 메뉴에서)를 사용하여 Explorer를 수동으로 시작할 수 있습니다. –
불행히도이 프로젝트의 본질은 클라이언트 컴퓨터를 변경할 수 없으며 XP, Vista 및 Win7이 혼합되어 실행됩니다. PC는 우리 소유가 아니지만 가능한 한 안전하게 콘텐츠를 전달하는 데 사용해야합니다. 나는 또한 질문을 업데이트 할 것이다. – ZombieSheep