답변
이렇게하는 것은 위험 할 수 있지만 해결책은 WM_ACTIVATE 메시지를 처리하고 wParam이 WA_INACTIVE인지 확인하는 것입니다. 이것은 창이 비활성화되었음을 의미합니다. 이런 일이 생기면 다시 활성화 할 수 있습니다.
다른 프로세스의 창에서이 작업을 수행하려면 SetWindowsHookEx
과 함께 메시지 후크를 설치해야합니다.
그러나 다른 응용 프로그램이 서로를 무한 루프로 활성화/비활성화시키는 것도 가능합니다.
이것은 또한 개인용 컴퓨터에서 실행하기위한 소프트웨어로 수행해서는 안되는 일입니다.
더 중요한 것은 포커스 변경 이벤트 중에 포커스를 변경하지 않아야한다는 것이 Windows의 어려운 규칙입니다. WM_ACTIVATE는 윈도우가 활성화 상태를 바꾸고 있다는 알림 일뿐입니다 ** ** 허가를 요청하지 않습니다 **. 당신은 그 문제에 대해 정말로 아무 말도하지 않으며, 당신이한다고 가정하면 문제를 묻는 것입니다. –
할 수 있습니다 트랩이 같은 WM_ACTIVATEAPP
:
protected override void WndProc(ref Message m) {
// Trap WM_ACTIVATEAPP
if ((m.Msg == 0x1c) && (m.WParam == IntPtr.Zero))
{
// If WM_ACTIVATEAPP and WParam is deactivated, return
return;
}
base.WndProc(ref m);
}
다른 프로세스에서 창을 호출 할 때의 질문입니다. 코드는 코드와 동일한 프로세스의 창에서만 작동합니다. – Steve
이것이 제대로 작동합니까? 다른 응용 프로그램은 동시에 WM_ACTIVATEAPP 메시지를 수신하고 있습니다. 이 메시지는 앱을 비활성화 할 수있는 권한을 요청하지 않습니다. –
- 1. 탭을 선택하면 렌더링되지 않도록하려면 어떻게합니까?
- 2. 쉘 스크립트가 다운로드되지 않도록하려면 어떻게합니까?
- 3. CrystalReportViewer에서 플래시를 사용하지 않도록하려면 어떻게합니까?
- 4. UIButtons가 올바르게 비활성화되지 않습니다.
- 5. 그룹의 하나의 라디오 버튼이 선택되지 않도록하려면 어떻게합니까?
- 6. 응용 프로그램이 모든 모델에 설치되지 않도록하려면 어떻게합니까?
- 7. 마지막 뷰에서 현재 이미지가 나타나지 않도록하려면 어떻게합니까?
- 8. 공란에 제출하면 양식에서 아무 것도하지 않도록하려면 어떻게합니까?
- 9. TFS가 레이블을 덮어 쓰지 않도록하려면 어떻게합니까?
- 10. Eclipse에서 Console이 자동으로 터지지 않도록하려면 어떻게합니까?
- 11. .Net dll이 참조로 추가되지 않도록하려면 어떻게합니까?
- 12. PHP 스크립트가 동시에 실행되지 않도록하려면 어떻게합니까?
- 13. Eclipse 경고 메시지가 즉시 사라지지 않도록하려면 어떻게합니까?
- 14. 버튼 이벤트가 ASP.NET MVC에서 게시되지 않도록하려면 어떻게합니까?
- 15. 이미지가 캐시되지 않도록하려면 어떻게합니까? - 또는 - 서버에 파일이 있는지 확인하려면 어떻게합니까?
- 16. SimpleModal 로딩 이미지가 비활성화되지 않음
- 17. ObjectID가 프리미티브가되지 않도록하려면 어떻게해야합니까?
- 18. Interop에서 MS Graph 구성 요소가 나타나지 않도록하려면 어떻게합니까?
- 19. 업데이트시 sqlite 기본 키가 자동 증가하지 않도록하려면 어떻게합니까?
- 20. jQuery Mobile에서 링크가 머리글이나 바닥 글의 단추가되지 않도록하려면 어떻게합니까?
- 21. UIImageView를 가져올 때이 메모리 누수가 발생하지 않도록하려면 어떻게합니까?
- 22. Internet Explorer에서 단추를 누를 때 패딩이 추가되지 않도록하려면 어떻게합니까?
- 23. ContextMenu가 해당 컨테이너에 제한되지 않도록하려면 어떻게합니까? (Win Forms C#)
- 24. XMLin이 울리면 내 응용 프로그램이 종료되지 않도록하려면 어떻게합니까?
- 25. VS2008이 내 CSPROJ 파일을 불필요하게 수정하지 않도록하려면 어떻게합니까?
- 26. 선택 상자가 팝업 비트 Internet Explorer 8로 차단되지 않도록하려면 어떻게합니까?
- 27. PopUpButton에서 열린 캔버스가 포커스를 잃었을 때 닫히지 않도록하려면 어떻게합니까?
- 28. C# : 텍스트 상자의 keydown 이벤트에서 키가 indefinetly 눌러지지 않도록하려면 어떻게합니까?
- 29. Xcode에서 빌드 오류가 반복하여 나타나고 사라지지 않도록하려면 어떻게합니까?
- 30. Apache Tomcat이 스레드 풀의 스레드를 다시 사용하지 않도록하려면 어떻게합니까?
같은 질문에 대한 답변의 핵심은 두 개의 응용 프로그램이 그렇게하려고하면 무엇? –
@Sasha : +1. 또한, "창문이 다른 과정에있다"는 것은 기본적인 문제에 대한 흥미로운 비꼬는 소리처럼 들린다. –
"다른 프로세스의 창을 비활성화하는 것을 방지합니다"는 문제가 아니라 작업하려는 솔루션처럼 들리므로 근본적인 문제가 무엇인지 알려 주시면 더 나은 조언을 얻을 수 있습니다. –