VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/02/24(Thu) 21:15
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe: Windowsのバージョン情報を取得(簡便方法) サンプルについて

> 実行したところ、「With CreateObject("SysInfo.SYSINFO")」の行で

その手法はあまりお勧めできません。フォームがあるアプリなら、
システム情報コントロール(SysInfo)を貼り付けて使った方が良いですよ。


> インターネット上のいろんな「VB6ランタイム」を追加で入れてたのですが

SYSINFO.OCX があるだけでは駄目なんですよ。(REGSVR32で登録してあったとしても)

CreateObjectして使う方法というのは、実行時ライセンス(ランタイムライセンス)ではなく、
開発時ライセンス(デザインタイムライセンス)が要求されるようになっています。

まぁ、VBの開発環境(もしくはそれに類する物)がインストール済みの環境であれば、
CreateObjectでも作成できますけれど、普通はそういうわけにも行かないでしょうから、
素直に、コントロールを貼られる事をおすすめします。


もし、どうしても動的に生成したいなら、下記のようにして下さい。


Option Explicit
Const LicenseKey As String = "ライセンスキーなので、この部分は掲示板には書けません(^^;)"

Private Sub Form_Load()
    Licenses.Add "SysInfo.SYSINFO", LicenseKey
    With Controls.Add("SysInfo.SYSINFO", "X").object
        Label1.Caption = "OSPlatform: " & CStr(.OSPlatform) & vbCrLf _
                       & "OSBuild   : " & CStr(.OSBuild) & vbCrLf _
                       & "OSVersion : " & CStr(.OSVersion)
    End With
    Controls.Remove "X"
    Licenses.Remove "SysInfo.SYSINFO"
End Sub

# まっさらの環境の Win2000 Pro環境(on Virtual PC 2004)で動作確認。


上記の方法を使えば、開発環境が無い状態でも、SysInfoを動的に生成して利用できます。
なお、必要なライセンスキーについては、開発環境から
   Debug.Print Licenses.Add("SysInfo.SYSINFO")
にて調査してください。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -