2009-11-27 5 views
4

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 주셔서 감사합니다!

+1

Codeplex에서 프로젝트를 찾을 수의 Windows 키오스크 버전가 있다는 것을 알고 계십니까 (나는 그것이 XP 임베디드 또는 뭔가 생각)? 어쩌면 그건 스위트가 필요합니다 :) – OregonGhost

+0

TaskBar는 Explorer.exe에 의해 렌더링되므로이를 죽이거나 시작하지 못하도록 할 수 있습니다. 나는 윈도우 셸을 선택하는 레지스트리 키가 있음을 막연히 기억하고 있습니다. 이것은 셸이 시작되지 않도록 제거 될 수 있습니다. 작업 관리자 (Ctrl-Shift-Escape 또는 Ctrl-Alt-Delete 메뉴에서)를 사용하여 Explorer를 수동으로 시작할 수 있습니다. –

+0

불행히도이 프로젝트의 본질은 클라이언트 컴퓨터를 변경할 수 없으며 XP, Vista 및 Win7이 혼합되어 실행됩니다. PC는 우리 소유가 아니지만 가능한 한 안전하게 콘텐츠를 전달하는 데 사용해야합니다. 나는 또한 질문을 업데이트 할 것이다. – ZombieSheep

답변

4

Scott Hanselman의 BabySmash를 살펴보십시오. 사이트를 찾을 수 있습니다 BabySmash

그는 응용 프로그램을 만들기 위해 자신의 작품을 설명하는 몇 가지 블로그 항목이있었습니다. 키오스크 모드에서 아기에게 안전한 응용 프로그램이 있습니다.

당신은

+0

저는 BabySmash를 이미 살펴 봤습니다. 코드/XAML에서이 방법으로 작업 표시 줄을 숨긴 방법을 추측 할 수 없었습니다. 그래도 계몽의 희망으로 블로그 글을 다시 읽으 려합니다. 감사. – ZombieSheep

+0

그는 내가 좋아했을 때처럼 깨끗하게 달성하지 못했습니다. 그는 매초마다 한 번씩 발사하는 타이머를 가지고 있으며 타이머 이벤트에서 주 창은 전경 창이 있는지 확인합니다. 논리는 Controller.cs 파일에 있습니다. Btw, 내 아들은 스매싱 중에 아무것도 깨지 않았다 :-) – HakonB