我一直在嘗試檢測終端服務是否正在運行。我試圖用MSDN Way:正確檢測終端服務
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
返回一個非零值,這意味着「當前運行系統滿足指定要求「或功能失敗。
GetLastError
回報:
0x000000cb "The system could not find the environment option that was entered."
在Windows XP SP3,以VerifyVersionInfo
調用返回零值,所以有沒有輸入錯誤,我想。
我該如何處理這種行爲?對待這個好像沒有終端服務一樣好嗎?有沒有更好的技術?
它是在操作系統中的錯誤?
更新:
在Windows Server 2008 R1的行爲是相似的(失敗)。也可能在許多其他系統上。
我想知道爲什麼這是downvoted,答案是正確的。如果您贊成某事,請留下評論! – Remko 2010-12-12 20:22:40