Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для RUVATA

Старожил


Сообщения: 301
Благодарности: 16

Профиль | Отправить PM | Цитировать


Цитата Admiral:
Последняя строчка никогда не выполнится, так как в предпоследней указан Return. »
верно, ошибка не заметна, так как объект процесса созданный в функции закрывается вместе с ней, кстати почему так?

PS: проблема решена... использованием свойства ProcessStartInfo.CreateNoWindow = True
которое требует определенного значения другого свойства ProcessStartInfo.UseShellExecute = False (обязательно)
соответственно свойство
ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden (действует только для программ с Windows.Forms интерфейсом)

вот полностью рабочий пример функции вызывающей handle из директории с программой...
handle отрабатывает скрыто.
передаваемый аргумент - строка (целевая директория)
возвращаемое значение - строка (вывод handle.exe)

Код: Выделить весь код
    Public Function UseHandle(ByVal Arg As String)
        Dim my_handle As New Process
        Dim myProcessStartInfo As New ProcessStartInfo(System.Windows.Forms.Application.StartupPath & "\Handle.exe")
        Dim HandleText As String
        myProcessStartInfo.UseShellExecute = False
        myProcessStartInfo.RedirectStandardOutput = True
        myProcessStartInfo.Arguments = Arg
        myProcessStartInfo.CreateNoWindow = True
        my_handle.StartInfo = myProcessStartInfo
        my_handle.Start()
        my_handle.WaitForExit()
        HandleText = my_handle.StandardOutput.ReadToEnd
        my_handle.Close()
        Return (HandleText)
    End Function

-------
Одно дело искать сиюминутное решение, другое - искать знания...
вот и думай - что ты ищешь...


Отправлено: 08:43, 17-01-2011 | #4