2013-11-18 3 views
0

Я пытаюсь выполнить 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 

Этот код отлично работает на моем компьютере, но на компьютере клиента код висит.

+0

Похоже, что это скорее проблема сетевой конфигурации, чем что-то с вашим кодом. – DanK

ответ

0

Это может показаться грубым ответом, но это никоим образом не предназначено. Как уже отмечалось выше, это более чем вероятно, что это проблема с вашего клиента. Если программа работает в настоящее время на вашем конце, а не у них, у них есть проблема, а не код. Я столкнулся с множеством клиентов, которые не знают, что, если они не захотят позволить вам контролировать свой компьютер удаленно, я бы рекомендовал им получить некоторую информацию для вас. ipconfig - хорошее место для начала. И пока они находятся в командной строке, попробуйте попытаться пронести несколько мест. Я знаю, что это не настоящий ответ, но это то, с чем я столкнулся в прошлом.

+0

Спасибо за ответ. Я думаю, что, поскольку скрипт vb отлично работает сам по себе, сеть не является проблемой. Проблема возникает, когда я запускаю vbscript с Access. – HelloW

Смежные вопросы