Subnet MaskとDefault Gatewayの値をレジストリから取得していたのですが、違うPCなどで取得しようとするとレジストリの場所が違い取得できませんでした。取得するには何か関数を使用するのでしょうか?分かる人がいたら教えていただけるとありがたいです・・・
コマンドじゃダメ?
ipconfig
Sub GetIpconfig()
Dim WshShell, oExec, oEx, 一行入力, サブネット, ゲートウエイ
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("ipconfig")
Set oEx = CreateObject("VBScript.RegExp")
一行入力 = ""
Do While True
If Not oExec.StdOut.AtEndOfStream Then
一行入力 = oExec.StdOut.ReadLine
' MsgBox 一行入力
' サブネット判定、取得
oEx.Pattern = "(^.*Subnet Mask.*: )([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)"
If oEx.test(一行入力) = True Then
サブネット = oEx.Replace(一行入力, "$2")
End If
' ゲートウエイ判定、取得
oEx.Pattern = "(^.*Default Gateway.*: )([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)"
If oEx.test(一行入力) = True Then
ゲートウエイ = oEx.Replace(一行入力, "$2")
End If
Else
Exit Do
End If
Loop
MsgBox "Subnet Mask = " & サブネット & vbNewLine & _
"Default Gateway = " & ゲートウエイ
End Sub
コマンド画面が出るのがいやなら
ファイルに出力して取得すればいいと思います。
UNIXを知ってる人は、既存のコマンドを使用したくなります。
こんなやり方があったとは・・・私もまだまだ勉強不足のようです。
おかげで解決することができました。あん さんどうもありがとうございました。
ツイート | ![]() |