如:运行-> CMD -> Net View
---------------------------------------------
计算机A
计算机B
计算机C
计算机D我想在VB中用 Shell"Net View" ,执行完后程序要获得执行结果。再输入到指定的文本框中。
---------------------------------------------
计算机A
计算机B
计算机C
计算机D我想在VB中用 Shell"Net View" ,执行完后程序要获得执行结果。再输入到指定的文本框中。
Sub test()
Dim iStr$
Shell "net view > c:\a.txt", vbHide --将执行结果输出到c:\a.txt中
Open "c:\a.txt" For Input As #1 --从c:\a.txt文件中读取结果
While Not EOF(1)
Line Input #1, iStr
Debug.Print iStr
Wend
Close #1
End Sub
win2k的Net命令实际是调用API实现的。有相当一部分使用了NetAPI32.dll中的API函数。这个问题可能与NetServerEnum有关。
Shell"Net View > a.txt"
然后,再打开a.txt,将读取到的内容写入文本框
msn:[email protected]
x = Shell("command /c ipconfig >c:\bohao\1.txt", 1)’nt/2000下用
x = Shell("cmd /c ipconfig >c:\bohao\1.txt", 1)以前试过行得通的,但net view不知道行不行,现在没有测试环境,自己试试吧
Private Const WAIT_TIMEOUT = &H102&Public Function ShellForWait(sAppName As String, Optional ByVal lShowWindow As VbAppWinStyle = vbMinimizedFocus, Optional ByVal lWaitTime As Long = 0) As Boolean
Dim lID As Long, lHnd As Long, lRet As Long
On Error Resume Next
lID = Shell(sAppName, lShowWindow)
If lID > 0 Then
lHnd = OpenProcess(SYNCHRONIZE, 0, lID)
If lHnd <> 0 Then
Do
lRet = WaitForSingleObject(lHnd, lWaitTime)
DoEvents
Loop While lRet = WAIT_TIMEOUT
CloseHandle lHnd
ShellForWait = True
Else
ShellForWait = False
End If
Else
ShellForWait = False
End If
End Function
Private Sub Command1_Click()
ShellForWait "cmd /c net view >c:\a.txt",,&HFFFF
Open "c:\a.txt" For Input As #1
While Not EOF(1)
Line Input #1, iStr
Debug.Print iStr
Wend
Close #1
End Sub