2012-05-29 2 views
3

다른 프로그램에 키를 보내는 C#의 응용 프로그램이 있습니다. 이렇게하려면 작동하는 키를 보내기 전에 SetForegroundWindow 메서드를 호출합니다. 문제는 내가 RDC를 사용하여 컴퓨터에 연결되어 있고 RDC 창을 최소화하거나 연결을 끊었을 때 키가 전송되지 않는 경우입니다.원격 데스크톱 연결의 SetForegroundWindow

RDC 모드에서 SetForegroundWindow 메서드가 최소화되거나 연결이 끊긴 상태에서 작동하지 않기 때문에 발생합니다. 나는 SetActiveWindow, SetFocus 및 BringWindowToTop을 사용하여 시도했지만 행운은 없다. 그것을 할 방법이 있습니까?

+0

몇 주 전에 같은 개념으로 직면했습니다. RDP 창/세션이 최소화/닫혔는지 또는 연결이 비활성 상태인지 감지하고 싶었습니다. 나는 그 길을 돌아 다니며 일해 왔습니다. 그래서 저는 당신이 무엇을하려고했는지 알고 싶었습니다. 키를 보내기 전에 SetForegroundWindow를 설정하는 이유는 무엇입니까? 내가 아는 한 모든 원시 메소드가 RDC 모드에서 작동하지 않기 때문에 귀하의 모든 목적을 알고 싶습니다. –

+0

아마도 일부 API를 사용하여 응용 프로그램의 컨트롤 (핸들로)에 값을 직접 설정하는 것이 좋습니다. 그것은 실제로 어렵지 않습니다. – Letterman

답변

0

이것은 매우 일반적인 문제입니다. RDP 창 연결을 끊거나 최소화하면 GUI 컨텍스트가 손실됩니다. 그러나 RDP를 최소화하지 않아도됩니다 (초점을 잃어 버릴 수 있음). 즉, 전체 화면 모드를 해제하고 로컬에서 작업을 계속하려면 다른 창으로 전환하면됩니다.

당사 테스트 팀에서는 마스터 - 슬레이브 방식을 사용합니다. 마스터 호스트는 원격 연결을 시작하고 각 GUI 자동화 작업이 완료 될 때까지 최소화되지 않도록합니다.

관련 문제