Использование pipes

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
boles
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 04.08.2005 (Чт) 20:06

Использование pipes

Сообщение boles » 07.08.2007 (Вт) 18:55

Добрый день!
Пытаюсь с помощью пайпов передать текст.
Код следующий:

Кто передает:

Dim res&
Dim written&

sndBlocked.Enabled = False
lblStat.Caption = "Waiting for client"
lblStat.Refresh
res = ConnectNamedPipe(pipehnd, 0)
If res <> 0 Or (res = 0 And GetLastError() = ERROR_PIPE_CONNECTED) Then
lblStat.Caption = "Sending data"
lblStat.Refresh
Dim buffer$
buffer$ = String$(200, "aaaaaaaa")
res = WriteFile(pipehnd, buffer, Len(buffer) + 1, written, 0)

Else
MsgBox "Client has disconnected"
End If
lblStat.Caption = "Idle"
sndBlocked.Enabled = True

Кто получает:

res = WaitNamedPipe(txtPipe.Text, 10000)
If res = 0 Then
MsgBox "Pipe is not available at this time"
Exit Sub
End If
pipehandle = CreateFile(txtPipe.Text, GENERIC_READ Or GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0)
If pipehandle = INVALID_HANDLE_VALUE Then
MsgBox "Can't open named pipe"
Exit Sub
End If
Dim inbuf As String
Dim bytesread&, bytesavail&, bytesleft&
res = ReadFile(pipehandle, inbuf, 512, bytesread, 0)
If res Then
Text1.Text = inbuf
End If

Подскажите, как мне нужно переписать выделенные строки, чтобы в окне получателя отобразился передаваемый текст?
Заранее спасибо!

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

Сообщение tyomitch » 07.08.2007 (Вт) 19:08

inbuf = Space(512) перед чтением.
Изображение

boles
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 04.08.2005 (Чт) 20:06

Сообщение boles » 07.08.2007 (Вт) 19:15

tyomitch писал(а):inbuf = Space(512) перед чтением.


попробую завтра на работе... надеюсь, поможет :)
спасибо!

boles
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 04.08.2005 (Чт) 20:06

Сообщение boles » 08.08.2007 (Ср) 20:48

Получилось лишь передать числа... А со строками проблемы...
Вывернулся и стал передавать посимвольно через Asc() и Chr()... получилось...
Однако при попытке запуска на двух различных компах на строчке

pipehandle = CreateFile(txtPipe.Text, GENERIC_READ Or GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0)


pipehandle принимает значение INVALID_HANDLE_VALUE... и передать ничего не получается! Подскажите, где ошибка???

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 08.08.2007 (Ср) 21:16

Можешь посмотреть тут: http://forum.sources.ru/index.php?showtopic=168882
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот и гости: 100

    TopList