Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Домашняя сеть Добавлено: 29.01.04 18:36  

Автор вопроса:  Votmax  | Web-сайт: basiccenter.narod.ru
Как можно с одного компьютера послать "ПРИВЕТ", чтоб на другом появилось msgbox "ПРИВЕТ"?

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 Artificial Intelligence



ICQ: 275368971 

Вопросов: 8
Ответов: 131
 Профиль | | #1 Добавлено: 29.01.04 19:48

Такая штука работает только на Win2k/XP.

Declare Function NetMessageBufferSend Lib "netapi32" (ByVal ServerName As String, ByVal MsgName As String, ByVal FromName As String, Buf As Any, BufLen As Long) As Long

 

ServerName - 0 - локальня машина или UNICODE строка с названием удаленной машины.
MsgName - UNICODE строка с названием юзера или машины которой посылается сообщение.
FromName - UNICODE строка с названием юзера, который посылает сообщение (нужно для отмены сообщения), если 0 - то текущий юзер.
Buf - UNICODE строка - собственно сообщение.
BufLen - длина сообщения.

Пример:

 

Dim Answ As Long

Dim sServerName As String

Dim sMsgName As String
Dim sFromName As String

Dim sBuf As String
Dim lBufLen As Long

 

sServerName =""

sMsgName = StrConv(ИмяКомпаЮзера, vbUnicode)
sFromName = StrConv(ИмяТвоегоКомпа, vbUnicode)
sBuf = StrConv(Сообщение, vbUnicode)
lBufLen = LenB(Сообщение)

Answ = NetMessageBufferSend(sServerName, sMsgName, sFromName, sBuf, lBufLen)

Ответить

Номер ответа: 2
Автор ответа:
 Votmax



Вопросов: 72
Ответов: 28
 Web-сайт: basiccenter.narod.ru
 Профиль | | #2
Добавлено: 29.01.04 21:25

А как можно это осуществить с помощью mscomm???

Ответить

Номер ответа: 3
Автор ответа:
 Диман



ICQ: 224590251 

Вопросов: 29
Ответов: 64
 Web-сайт: www.dimon1int.narod.ru
 Профиль | | #3
Добавлено: 29.01.04 22:11

Короче у комма надо выставить свойство RTHreshold равным единице. При возникновении события OnComm, если свойство CommEvent равно comEvRing, значит идёт звонок и нужно послать ATA. MsComm1.Output="ATA" & Chr(13). А если comEvReceive, то следует обработать полученные данные вот так:

MsgBox MsComm1.Input

И всё!

Ответить

Номер ответа: 4
Автор ответа:
 NeForm@t



ICQ: 252999255 

Вопросов: 36
Ответов: 247
 Web-сайт: g--k.newmail.ru
 Профиль | | #4
Добавлено: 29.01.04 22:53

А если между компами локальная сеть или интернет, то можно использовать клиент-сервер, если надо, могу объяснить

Ответить

Номер ответа: 5
Автор ответа:
 Votmax



Вопросов: 72
Ответов: 28
 Web-сайт: basiccenter.narod.ru
 Профиль | | #5
Добавлено: 29.01.04 23:54

Давай...

Ответить

Номер ответа: 6
Автор ответа:
 NeForm@t



ICQ: 252999255 

Вопросов: 36
Ответов: 247
 Web-сайт: g--k.newmail.ru
 Профиль | | #6
Добавлено: 30.01.04 00:07

http://www.vbnet.ru/sample/sampledownload.asp?id=153 - вот простейший из примеров

Ответить

Номер ответа: 7
Автор ответа:
 Malyav



ICQ: 8440085 

Вопросов: 15
Ответов: 117
 Web-сайт: malyav.narod.ru
 Профиль | | #7
Добавлено: 30.01.04 09:49

Ручками в XP из команной строки делается так

net send ИмяКомпаВсети Текст сообщения

net send, как я понимаю. имя программы, остальное параметры . Значит можно попробовать через Shell

Ответить

Номер ответа: 8
Автор ответа:
 Artificial Intelligence



ICQ: 275368971 

Вопросов: 8
Ответов: 131
 Профиль | | #8 Добавлено: 30.01.04 10:25

Имя программы net.exe

Send это команда

Так вот эта программа для посылки сообщений использует API NetMessageBufferSend, поэтому проше работать сразу с этой API.

Ответить

Номер ответа: 9
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #9 Добавлено: 30.01.04 10:33

Верно. Недавно написал прогу, посылающую такие мессаги на разные компы от произвольного имени (скорее даже подправил и скомпилил, основной код появлялся на форуме раньше). Могу намылить для примера.

Ответить

Номер ответа: 10
Автор ответа:
 Votmax



Вопросов: 72
Ответов: 28
 Web-сайт: basiccenter.narod.ru
 Профиль | | #10
Добавлено: 30.01.04 18:27

Вот я пишу:

MSComm1.Handshaking = comRTS

MSComm1.RTSEnable = True
MSComm1.RThreshold = 1

MSComm1.Output ="Привет"

MSComm1.RTSEnable = False
  Do
        DoEvents
    Loop While MSComm1.CommEvent = 1

И дальше...

MSComm1.InputMode = comInputModeText
      If MSComm1.InBufferCount <> 0 Then
      msgbox MSComm1.Input
      MSComm1.RTSEnable = False
           End If

Что не так???????

Ответить

Номер ответа: 11
Автор ответа:
 Votmax



Вопросов: 72
Ответов: 28
 Web-сайт: basiccenter.narod.ru
 Профиль | | #11
Добавлено: 30.01.04 20:58
Может быть какие-то параметры не верны???

Ответить

Номер ответа: 12
Автор ответа:
 Votmax



Вопросов: 72
Ответов: 28
 Web-сайт: basiccenter.narod.ru
 Профиль | | #12
Добавлено: 31.01.04 18:24

У меня не XP. А что значит АТ.

Ответить

Номер ответа: 13
Автор ответа:
 GlooM



ICQ: 348453688 

Вопросов: 88
Ответов: 356
 Web-сайт: newlc.info
 Профиль | | #13
Добавлено: 01.02.04 19:37
А проще в командной строке прописать net send IP-адрес(или Имя Компа) message

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам