2014-06-05 7 views
3

프로그램을 작성 중이며 RDP 연결에서 호스트로 작동 할 수있는 Windows 시스템에서만 실행되도록하고 싶습니다. 예를 들어 일부 Windows 버전에서는 이러한 작업을 수행 할 수 없습니다. win7 기본, win7 홈, win8.
Windows 버전을 확인하고 RDP 호스트 호환 버전 목록과 비교할 수 있지만이 기능을 확인하는 일반적인 방법이 있는지 궁금합니다. 아마 일부 WinAPI 메서드 또는 특수 레지스트리 키. 제안 사항이 있으십니까?Windows 컴퓨터가 RDP 연결에서 호스트로 작동 할 수 있는지 확인하십시오.

+0

Windows 버전이 지원하는지 또는 RDP 서비스가 연결을 수신하는지 여부를 알고 싶습니까? –

+0

@DavidHeffernan 첫 번째. –

+1

당신의 최선의 방법은 에디 체크를 하드 코딩하는 것입니다. –

답변

0

마찬가지로 David Heffernan은 개정판 확인이 하드 코드되었습니다.

2

는 지금까지 내가 MSDN Remote Desktop Services Administration을 이해하는 기능 NetServerGetInfo는 당신에게 당신이 원하는 정보를 제공해야한다.

LPSERVER_INFO_101 pSI = NULL; 
if(NetServerGetInfo(NULL, 101, (LPBYTE*)&pSI) == NErr_Success) { 
    const bool bIsTerminalServer = pSI->sv101_type & SV_TYPE_TERMINALSERVER; 
    NetApiBufferFree(pSI); 
} 

다른 뉴스 그룹 게시물은 서비스 TermService가 실행중인 경우 (해당에 대한 QueryServiceStatusEx을 사용할 수 있습니다)을 확인하는 것이 좋습니다.

+0

좋은데,이 방법은 특수 구성된 서버에서만 작동하는 것 같아요? RDP가 Win8.1 Pro를 사용하여 작업중인 컴퓨터에 연결할 수 있지만 bIsTerminalServer == false. –

+0

@nnatarr 답변을 업데이트했습니다. 내 Windows 7에서 서비스가 실행 중이 아니 었습니다 (원격 데스크톱을 사용할 수 없음). 원격 데스크톱을 사용하도록 설정하면 서비스가 시작되었습니다. 그러나 원격 데스크톱을 다시 비활성화하면 서비스가 계속 실행됩니다. 어쩌면 여전히 도움이 될 것입니다. –

+0

Windows 버전이 RDP 호스트처럼 작동하는지 알고 싶습니다. 그래서 David Heffernan의 충고를 따를 것입니다. 당신의 도움을 주셔서 감사합니다! –