2011-12-29 3 views
0

Я пытаюсь перенаправить вывод командной строки в окно списка в макросе vba, и я нашел код, который, как я думаю, мог бы указать мне в правильном направлении, но я продолжаю получать ту же ошибку. Когда я использую этот код«Определенный пользователем тип не определен» при попытке определить новый «процесс»

Function ReadCmdOutput(ByVal applicationName As String, 
Optional ByVal applicationArgs As String = "", Optional ByVal 
workingDirectory As String = "", Optional ByVal showWindow As Boolean 
= False) As String 

Try 
    Dim processObj As New Process 

    processObj.StartInfo.UseShellExecute = False 
    processObj.StartInfo.RedirectStandardOutput = True 
    processObj.StartInfo.FileName = applicationName 
    processObj.StartInfo.Arguments = applicationArgs 
    processObj.StartInfo.WorkingDirectory = workingDirectory 

    If showWindow = True Then 
     processObj.StartInfo.CreateNoWindow = False 
    Else 
     processObj.StartInfo.CreateNoWindow = True 
    End If 

    processObj.Start() 
    processObj.WaitForExit() 

    Return processObj.StandardOutput.ReadToEnd 
    Catch ex As Exception 
    Return "" 
End Try 

End Function 

Это дает мне ошибку в заголовке и выделяет первую строку объявления.

Вопрос: Что нужно для определения нового «процесса».

Бонусные баллы: Помогите мне с перенаправлением командной строки!

ответ

1

Это не может быть VBA, поскольку в заявках VBA или return нет Try/Catch. Это похоже на VB.NET. В любом случае компилятор сообщает вам, что в настоящее время нет ссылки на любую DLL, которая содержит объект процесса.

Если это VB.NET, вам нужно добавить Imports System.Diagnostics

+0

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

+0

ааа да спасибо, что пропустил. –