function IsWindowsServer: Boolean; var OSVI: TOSVersionInfoEx; ConditionMask: UInt64; begin FillChar(OSVI,SizeOf(TOSVersionInfoEX),0); OSVI.dwOSVersionInfoSize := SizeOf(OSVI); OSVI.wProductType := VER_NT_WORKSTATION; ConditionMask := VerSetConditionMask(0,VER_PRODUCT_TYPE,VER_EQUAL); Result := not (VerifyVersionInfo(OSVI,VER_PRODUCT_TYPE,ConditionMask)); end;OSVERSIONINFOEX構造体を初期化後、wProductTypeにVER_NT_WORKSTATIONを格納し、これに対応する条件マスク(VER_PRODUCT_TYPEがVER_EQUAL)をVerifyVersionInfoで作成してVerifyVersionInfoで問い合わせて、結果がFalse(wProductTypeがVER_NT_WORKSTATION以外)ならサーバ版Windows、という判定です。
→Windowsがサーバ版かどうかを調べる(Gist)
0 件のコメント:
コメントを投稿