응용 프로그램을 시작하고 GetForegroundWindow()를 호출하여 시작했는지 확인하는 테스트가 있습니다. 이 테스트는 일반적으로 원격 데스크톱을 통해 액세스하는 원격 컴퓨터에서 실행됩니다. rdp 세션이 시스템에 열려 있으면 테스트가 완료되고 모두 정상입니다. 그러나 일단 원격 데스크톱을 닫으면 GetForegroundWindow가 항상 Null을 반환하기 때문에 테스트가 실패합니다. 연결을 끊은 후에도 활성 바탕 화면이 여전히 '기본값'인지 확인 했으므로 this 문제가 발생하지 않을 것입니다. 어떤 아이디어가이 원인 일 수 있습니까? 사전GetForegroundWindow는 원격 데스크톱 연결이 끊어지면 Null을 반환합니다.
2
A
답변
0
에서
덕분에 내가 반환, 반환 된 HWND 관심있는 응용 프로그램이 아닌 다른 창에서 것을 확인 할 수있는 방법이 GetForegroundWindow 즉이 있으리라 믿고있어.
어쨌든 EnumWindows를 사용하여 화면의 모든 창을 가져옵니다. 찾고있는 앱과 일치하는 HWND를 찾으십시오.
HWND의 유효성을 검사 할 수있는 방법이없는 경우 앱을 실행하기 전에 EnumWindows를 호출하여 화면의 총 창의 수를 확인하십시오. 그런 다음 자동화 스크립트를 통해 앱을 실행하십시오. 카운트가 1 증가 할 때까지 EnumWindows를 통해 창 개수를 폴링합니다.
0
원격 데스크톱을 사용하면 tscon 명령을 사용할 수있는 가상 머신 인 경우 :
"1"활성 세션의 ID입니다tscon 1 /dest:console
.
이 명령은 RDP 연결을 끊지 만 세션을 콘솔로 보냅니다. 창을 잡아서 스크린 샷을 찍을 수 있습니다.
관련 문제
- 1. 네트워크 연결이 끊어지면 MSMQ가 발생합니다
- 2. Windows 서비스의 경우 GetForegroundWindow는 항상 0을 반환합니다.
- 3. 네트워크 연결이 끊어지면 javax.jms.ExceptionListener가 onException 콜백을 지연합니까?
- 4. 모바일 연결이 끊어지면 SMS가받은 편지함으로 이동합니다.
- 5. 네트워크 연결이 끊어지면 웹 서비스 호출이 잠김
- 6. 연결이 끊어지면 ASIHTTPRequest 오류가 표시되지 않습니다.
- 7. javax.comm : 장치 연결이 끊어지면 오류가 발생합니다.
- 8. 게임 센터 연결이 끊어지면 영원히 걸립니다.
- 9. SharedObject.getLocal()이 null을 반환합니다.
- 10. FastVectorHighlighter.Net은 GetBestFragment에서 null을 반환합니다.
- 11. PHP에서 ftp_connect가 NULL을 반환합니다.
- 12. ServletActionContext.getRequest()가 NULL을 반환합니다.
- 13. Wicket : getModelObject가 null을 반환합니다.
- 14. $ .getJSON의 응답이 null을 반환합니다.
- 15. SelectionList는 항상 NULL을 반환합니다.
- 16. ImageIO.createImageInputStream이 null을 반환합니다. 어떻게해야합니까?
- 17. JNI- FindClass가 null을 반환합니다.
- 18. IE7에서 insertRow가 null을 반환합니다.
- 19. FB.getSession()이 null을 반환합니다.
- 20. JNI - GetObjectField가 NULL을 반환합니다.
- 21. NSArrayController addObject null을 반환합니다.
- 22. UserService.getCurrentUser()가 null을 반환합니다.
- 23. document.elementFromPoint가 IE에서 null을 반환합니다.
- 24. GetTemplateChild는 항상 null을 반환합니다.
- 25. 오디오 녹음이 null을 반환합니다.
- 26. GetProcAddress가 NULL을 반환합니다.
- 27. BroadcastReceiver peekService() null을 반환합니다.
- 28. localtime은 null을 반환합니다.
- 29. cvCreateCameraCapture가 null을 반환합니다.
- 30. getCellLocation이 null을 반환합니다.
*이 문제 (예 : Windows 보안)에 실제로 불만이 있습니다. RDP 세션을 최소화하거나 연결을 해제하면 세션이 보안 데스크톱으로 전환되고 일부 API는 작동하지 않습니다. 여기를 확인하십시오 : http://www.tech-archive.net/Archive/Windows/microsoft.public.windows.terminal_services/2008-11/msg00472.html – Andrey