Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: сообщения в win9X, Me, NT,2k, XP Добавлено: 15.12.02 12:15  

Автор вопроса:  Fon

Как отправить сообщение на компьютер в локальной сети (не используя winsock. Программа должна работать по типу winpopup или net send * *

мой майл alexr2k@yandex.ru

Заранее огромное спасибо.

Ответить

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

Номер ответа: 1
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #1
Добавлено: 18.12.02 09:55

В Win9x незнаю  ;(если найдёшь, напиши плз.)

А в NT_хах (Win2k, WinXp) примерно так:

'На форме: баттон и 2 textbox-a

'один для имени компа (text1) , второй для текста

Option Explicit

Private Declare Function NetMessageBufferSend Lib "Netapi32.dll" (ByVal sServerName$, ByVal sMsgName$, ByVal sFromName$, ByVal sMessageText$, ByVal lBufferLength&;) As Long

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Dim UserName As String, CompName As String

 


Private Sub Command1_Click()

Dim lReturnCode As Long
Dim sUnicodeToName As String
Dim sUnicodeFromName As String
Dim sUnicodeMessage As String
Dim lMessageLength As Long


sUnicodeFromName = StrConv(CompName, vbUnicode)
sUnicodeToName = StrConv(Text1.Text, vbUnicode)
sUnicodeMessage = StrConv(Text2.Text + vbCrLf & vbCrLf & vbCrLf & "_______________________________________" & vbCrLf & UserName, vbUnicode)
lMessageLength = Len(sUnicodeMessage)

lReturnCode = NetMessageBufferSend("", sUnicodeToName, sUnicodeFromName, sUnicodeMessage, lMessageLength)
If lReturnCode = 0 Then
  MsgBox "Ваше сообщение отправленно!", vbInformation, Me.Caption
        Else
        MsgBox "Ваше сообщение не отправленно! Ошибка : " + CStr(lReturnCode)
End If
End Sub


 

Private Sub Form_Load()

Dim lpBuff As String * 25
Dim ret As Long

Dim strBuffer As String
Dim lngBufSize As Long
Dim lngStatus As Long
ret = GetUserName(lpBuff, 25)
UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
lngBufSize = 255
strBuffer = String$(lngBufSize, " ")
lngStatus = GetComputerName(strBuffer, lngBufSize)
If lngStatus <> 0 Then
CompName = Left(strBuffer, lngBufSize)
End If
End Sub

З.Ы.

код не мой, а кто автор я не помню (кде-то когда-то нашёл ), но работает. Правда только на Win2k & XP

Ответить

Страница: 1 |

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



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