Process.StandardOutput

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Process.StandardOutput

Сообщение mdx » 01.04.2006 (Сб) 11:28

Код: Выделить всё

    Shared Data As String

    Private Sub ReadOutput()
        Do While InProcess
            Try
                Data += ChrW(Process.StandardOutput.Read)
            Catch ex As Exception
            End Try
        Loop
    End Sub

    Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
        If Data = "" Then Exit Sub
        Write(Data)
        Data = ""
    End Sub

Для ReadOutput создается отдельный Thread
Если дописать WriteLine'ом в StandardInput что-нибудь, то выводит то, что должно появиться после команды, но почему-то и то, что уже было (проверял на cmd.exe). Вопрос: почему?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Process.StandardOutput

Сообщение tyomitch » 01.04.2006 (Сб) 14:29

mdx писал(а):Если дописать WriteLine'ом в StandardInput что-нибудь, то выводит то, что должно появиться после команды, но почему-то и то, что уже было (проверял на cmd.exe). Вопрос: почему?

Это эхо, что ли, имеется в виду? Или что?
Изображение

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 02.04.2006 (Вс) 12:19

Ну, например, пускаю cmd.exe
Вылазит такое:
Microsoft Windows XP [‚ҐабЁп 5.1.2600]
(‘) Љ®аЇ®а жЁп Њ ©Єа®б®дв, 1985-2001.
D:\>


Отправляю, например, dir
Код: Выделить всё
Process.StandardInput.WriteLine("dir")


К тому, что было, добавляется:
Microsoft Windows XP [‚ҐабЁп 5.1.2600]
(‘) Љ®аЇ®а жЁп Њ ©Єа®б®дв, 1985-2001.

D:\>dir
’®¬ ў гбва®©б⢥ D ­Ґ Ё¬ҐҐв ¬ҐвЄЁ.
‘ҐаЁ©­л© ­®¬Ґа ⮬ : 4228-2F7B

‘®¤Ґа¦Ё¬®Ґ Ї ЇЄЁ D:\

31.03.2006 17:31 <DIR> .
31.03.2006 17:31 <DIR> ..
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 02.04.2006 (Вс) 15:11

А! Я всё понял! Каждый раз в поток скидывается содержимое всего буфера, а Seeking StandardInput не поддерживает. Теперь в текстовое поле не дописываю, а полностью заменяю текст
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 92

    TopList