Hide WScript Command window

A

AP

This code gives the IP address of the computer. It however displays a
command window momentarily. How can I prevent the window from being
displayed ? Thanks.

Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")

Set oExec = WshShell.Exec("%comspec% /c ipconfig")

Do While oExec.stdOut.AtEndOfStream <> True
StrLine = oExec.stdOut.Readline

If InStr(StrLine, "Address") > 0 Then
'found
strIP = StrLine
Exit Do
End If
Loop

MsgBox Mid(strIP, (InStr(strIP, ":") + 2))
 
S

Steve Yandl

Below is a routine that won't eliminate the appearance of the console window
but will limit it's duration to a shorter time (probably a second or less).
Basically, you don't need the %comspec% in your command line.

'-------------------------------------

Set objShell = CreateObject("WScript.Shell")

Set objWshExec = objShell.Exec("ipconfig")

Set objStdOut = objWshExec.StdOut

Do Until objStdOut.AtEndOfStream
strLine = objStdOut.ReadLine
If Instr(strLine, "IP Address") > 0 Then
arrText = Split(strLine, ":")
strIPaddress = arrText(1)
End If
Loop

MsgBox strIPaddress

'------------------------------------

If that is still too much, consider using WMI to retrieve the IP instead of
running ipconfig.

Steve Yandl
 
S

Steve Yandl

Here is an option using WMI

Sub GetMyIpAddress()
Set objWMIService = GetObject("winmgmts:")
Set colNicConfig = objWMIService.ExecQuery("SELECT * FROM " & _
"Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each objNicConfig In colNicConfig
If Not IsNull(objNicConfig.IPAddress) Then
For Each strIPAddress In objNicConfig.IPAddress
MsgBox strIPAddress
Next
End If
Next
End Sub


Steve Yandl
 
A

AP

Thanks Steve. It works beautifully.
Cheers,
Al

Steve Yandl said:
Here is an option using WMI

Sub GetMyIpAddress()
Set objWMIService = GetObject("winmgmts:")
Set colNicConfig = objWMIService.ExecQuery("SELECT * FROM " & _
"Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each objNicConfig In colNicConfig
If Not IsNull(objNicConfig.IPAddress) Then
For Each strIPAddress In objNicConfig.IPAddress
MsgBox strIPAddress
Next
End If
Next
End Sub


Steve Yandl
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top