VBSでIPアドレスを取得する(DOS窓非表示)

objShell.Exec(“ipconfig.exe”) などと Execを使うとDOS窓が表示されてしまい少々気になっていた。
DOS窓が非表示できるのは Run を使って書き直してみたので、メモしておきます

Dim wsh, env, exe
Dim ipaddress,str
Dim strLine, iColon
Dim objFSO,objFile,objFolder,temp_path,strFile

Set wsh = WScript.CreateObject("WScript.Shell")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.getSpecialFolder(2)
strFile = objFolder.Path & "\" +"temp_ipconfig.txt"

str="cmd /c ipconfig.exe > " + strFile
wsh.Run str,0,True

Set objFile = objFSO.OpenTextFile(strFile)
Do While objFile.AtEndOfStream <> True

  strLine = objFile.ReadLine

  If InStr(strLine, "IP Address") <> 0 Then
    iColon = Instr(strLine, ":")
    ipaddress = Mid(strLine, iColon + 2)
    ipaddress = Replace(ipaddress, vbCr, "")
  End If

  If InStr(strLine, "IPv4 アドレス") <> 0 Then
    iColon = Instr(strLine, ":")
    ipaddress = Mid(strLine, iColon + 2)
    ipaddress = Replace(ipaddress, vbCr, "")
    exit do '最初の"IPv4 アドレス"を見つけてアバウトに終了
  End If

Loop

msgbox ipaddress

Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
Set wsh = Nothing

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です