터미널 서비스가 실행 중인지 여부를 감지하려고했습니다.터미널 서비스의 올바른 탐지
그것은 잘 작동OSVERSIONINFOEX osVersionInfo;
DWORDLONG dwlConditionMask = 0;
memset(&osVersionInfo, 0, sizeof(osVersionInfo));
osVersionInfo.dwOSVersionInfoSize = sizeof(osVersionInfo);
osVersionInfo.wSuiteMask = VER_SUITE_TERMINAL;
VER_SET_CONDITION(dwlConditionMask, VER_SUITENAME, VER_AND);
return VerifyVersionInfo(&osVersionInfo, VER_SUITENAME, dwlConditionMask);
만에 :
터미널 서비스 역할이없는OS Name: Microsoft(R) Windows(R) Server 2003, Enterprise Edition
OS Version: 5.2.3790 Service Pack 2 Build 3790
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Server
OS Build Type: Multiprocessor Free
이 VerifyVersionInfo
에 대한 호출이 의미가 0이 아닌 값을 리턴 "현재 실행중인 운영 나는 MSDN Way을 사용하려 시스템이 지정된 요구 사항을 충족시킵니다. "또는 함수가 실패합니다.
GetLastError
반환 : 윈도우 XP SP3에
0x000000cb "The system could not find the environment option that was entered."
이 VerifyVersionInfo
에 대한 호출이 0 값을 반환, 그래서 타이핑 오류가 없는지, 나는 가정한다.
이 동작을 어떻게 처리합니까? 터미널 서비스가없는 것처럼 이것을 처리하는 것이 좋습니까? 더 좋은 기술이 있습니까?
OS의 버그입니까?
업데이트 : 윈도우 서버 2008 R1 행동에
이 (실패)과 유사하다. 다른 많은 시스템에도있을 수 있습니다.
나는 이것이 왜 downvoted인지, 그 대답이 정확한지 궁금합니다. 뭔가 downvote 경우 코멘트를 남겨주세요! – Remko