Я пытаюсь выполнить ping-сервер перед загрузкой файла с ftp. Недавно клиент пожаловался, что процесс замерзает. Я протестировал процесс ping с помощью файла vbscript, чтобы убедиться, что что-то не сломалось на компьютере. Vbscript работал отлично. Поэтому я запустил скрипт из базы данных Access и повесил его так же, как и раньше. Есть ли что-то в ping exe, которого я здесь не хватает?Процесс Ping-сервера висит
Vbscript, который работает отлично, когда вы дважды щелкаете по нему.
Const fsoForWriting = 2
Dim oShell, ping, strPath, strPing
Set oShell = WScript.CreateObject ("WScript.Shell")
Set ping = oShell.exec("ping -n 2 -w 750 google.com")
Do While ping.Status = 0
WScript.Sleep 100
Loop
strPing = ping.StdOut.ReadAll
strPath = Wscript.ScriptFullName
Set objFSO = CreateObject("Scripting.FileSystemObject")
strTextFile = objFSO.GetParentFolderName(strPath) & "\PingResults.txt"
Set objTextStream = objFSO.OpenTextFile(strTextFile, fsoForWriting, True)
objTextStream.WriteLine strPing
objTextStream.Close
Set objTextStream = Nothing
Set objFSO = Nothing
Set oShell = Nothing
Функция VBA, которая запускается в тестовой базе данных при запуске. Это код, который висит.
Function fFtpOnline(ByVal ComputerName As String)
On Error GoTo ErrHandler
Dim oShell, ping
Set oShell = CreateObject("WScript.Shell")
Set ping = oShell.exec("cscript " & Access.CurrentProject.Path & "\" & "Test.vbs")
Do While ping.Status = 0
DoEvents
Loop
Set oShell = Nothing
Exit Function
ErrHandler:
MsgBox Err.Description & " " & "fFtpOnline "
Resume Next
End Function
Этот код отлично работает на моем компьютере, но на компьютере клиента код висит.
Похоже, что это скорее проблема сетевой конфигурации, чем что-то с вашим кодом. – DanK