2009-04-26 3 views
3

주로 백그라운드에서 작동하는 응용 프로그램이 있습니다. 나는 그 응용 프로그램이 포어 그라운드 응용 프로그램에서 초점을 훔치도록 처리하는 특정 시스템 이벤트를 원합니다. 하지만 UIElement.Focus()는 WPF 앱 내에서만 포커스를 설정하는 것 같습니다. 즉, WPF 앱에 이미 전체적으로 포커스가있는 경우 Focus()는 포커스를 올바른 컨트롤로 설정합니다. 하지만 다른 앱에서 포커스를 훔쳐 내 앱에 넣어야합니다. 어떻게해야합니까?내 응용 프로그램에 시스템 포커스 설정

내가 할 아니요 시스템 모달 대화 상자가 필요합니다. 즉, 창이 훔친 후에 사용자가 내 앱의 창을 닫지 않고 즉시 다른 앱으로 전환 할 수 있어야합니다.

시스템 포커스를 훔쳐 야 할 때 응용 프로그램이 이미 복원되었거나 최소화되었거나 "최소화 트레이"상태 일 수 있습니다. 따라서 창을 복원하는 동안 최소화되어 포커스를 훔치는 것으로 간주하면 안됩니다. 당신이 솜 P/발동 할 일을 생각하지 않는 경우

+0

아이러니하게도 년 후, 나는 궁금하네요 세상에서 내가이 일을 원하는 이유. 나는 이것을하는 애플 리케이션이 싫다. –

답변

6

SetForegroundWindow 기능은 당신을 도울 수 있어야합니다 :
http://pinvoke.net/default.aspx/user32/SetForegroundWindow.html

+0

SetForegroundWindow 문서에서 발언을 읽는 것도 가치가 있습니다. http://msdn.microsoft.com/en-us/library/ms633539(VS.85).aspx Windows는 배경 창에서 다른 창. –

관련 문제