Program-05 Windowsが9x系かNT系かを判定する

Q 使っているWindowsが9x系かNT系かによって、プログラムを使えなくするとか、処理を分けるなどの処理を行いたいのですが、どうすればいいでしょうか?
A GetVersionEx関数を使います。
どう使う?
Dim udtOSVersion As OSVERSIONINFO
With udtOSVersion
    .dwOSVersionInfoSize=Len(udtOSVersion)
    GetVersionEx(udtOSVersion)
    If .dwPlatformId=VER_PLATFORM_WIN32_WINDOWS Then
        MsgBox NULL,"Win9x系です。"
    Else
        MsgBox NULL,"WinNT系です。"
    End If
End With

やむを得ずWindows9x系では使えない機能を使う、などのときに使える検査方法です。
しかし、NT系のみにしか存在しないAPI関数を使っている場合、この方法を使っていてもプログラム起動時の段階でエラーが出て強制終了してしまいます。
関数ポインタからの実行であれば全く問題にはなりませんが、その「関数ポインタからの実行」が十分にサポートされていないのがActiveBasicのちょっとした難点かもしれません。
AB4で実装されました。If文で分岐して、それぞれ適切な関数をポインタから実行すればいいですね。
API関数のポインタはLoadLibraryやGetProcAddress関数で取得しましょう。

メニューに戻る