投稿日 | : 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")
にて調査してください。