- '----------------------------------------
- ' NSA : Envoi de net send anonyme
- ' --------------------------------
- ' Par LEVEUGLE Damien
- ' Elguevel (c) 2006
- '
- ' Pour : VBFrance.com
- '
- '----------------------------------------
-
-
- Option Explicit
-
- '--------------------
- ' Fonctions Windows
- '--------------------
- Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" ( _
- ByVal lpFileName As String, _
- ByVal dwDesiredAccess As Long, _
- ByVal dwShareMode As Long, _
- ByVal lpSecurityAttributes As Long, _
- ByVal dwCreationDisposition As Long, _
- ByVal dwFlagsAndAttributes As Long, _
- ByVal hTemplateFile As Long) As Long
-
- Private Declare Function WriteFile Lib "kernel32" ( _
- ByVal hFile As Long, _
- ByVal lpBuffer As String, _
- ByVal cToWrite As Long, _
- ByRef cWritten As Long, _
- Optional ByVal lpOverlapped As Long) As Long
-
- Private Declare Function CloseHandle Lib "kernel32" ( _
- ByVal hObject As Long) As Long
-
- '--------------------
- ' Constantes Windows
- '--------------------
- Public Const OPEN_EXISTING = 3
- Public Const FILE_SHARE_READ = &H1
- Public Const INVALID_HANDLE_VALUE = &HFFFFFFFF
- Public Const GENERIC_WRITE = &H40000000
- Public Const FILE_ATTRIBUTE_NORMAL = &H80
-
-
- '****************************************************
- '* ENVOI
- '****************************************************
- Public Function SendMessage(Emetteur, Destinataire, LeMessage As String) As Boolean
-
- ' Declaration
- Dim HWNDSlot As Integer
- Dim Buffer As String
- Dim NombreEcrit As Long
-
- ' Initialisation
- SendMessage = False
- NombreEcrit = 0 ' Non utilisé
-
- ' Création du MailSlot
- HWNDSlot = CreateFile("\\" & Destinataire & "\MAILSLOT\MESSNGR", _
- GENERIC_WRITE, _
- FILE_SHARE_READ, 0, _
- OPEN_EXISTING, _
- FILE_ATTRIBUTE_NORMAL, 0)
-
- ' Définition de la trame
- Buffer = Emetteur & Chr(0) & Destinataire & Chr(0) & LeMessage & Chr(0)
-
- ' Envoi
- If (HWNDSlot <> INVALID_HANDLE_VALUE) Then
- Call WriteFile(HWNDSlot, Buffer, Len(Buffer), NombreEcrit, 0)
- SendMessage = True
- Else
- SendMessage = False
- End If
-
- ' Fermeture du Slot
- Call CloseHandle(HWNDSlot)
-
- End Function
'----------------------------------------
' NSA : Envoi de net send anonyme
' --------------------------------
' Par LEVEUGLE Damien
' Elguevel (c) 2006
'
' Pour : VBFrance.com
'
'----------------------------------------
Option Explicit
'--------------------
' Fonctions Windows
'--------------------
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" ( _
ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, _
ByVal lpSecurityAttributes As Long, _
ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long
Private Declare Function WriteFile Lib "kernel32" ( _
ByVal hFile As Long, _
ByVal lpBuffer As String, _
ByVal cToWrite As Long, _
ByRef cWritten As Long, _
Optional ByVal lpOverlapped As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long
'--------------------
' Constantes Windows
'--------------------
Public Const OPEN_EXISTING = 3
Public Const FILE_SHARE_READ = &H1
Public Const INVALID_HANDLE_VALUE = &HFFFFFFFF
Public Const GENERIC_WRITE = &H40000000
Public Const FILE_ATTRIBUTE_NORMAL = &H80
'****************************************************
'* ENVOI
'****************************************************
Public Function SendMessage(Emetteur, Destinataire, LeMessage As String) As Boolean
' Declaration
Dim HWNDSlot As Integer
Dim Buffer As String
Dim NombreEcrit As Long
' Initialisation
SendMessage = False
NombreEcrit = 0 ' Non utilisé
' Création du MailSlot
HWNDSlot = CreateFile("\\" & Destinataire & "\MAILSLOT\MESSNGR", _
GENERIC_WRITE, _
FILE_SHARE_READ, 0, _
OPEN_EXISTING, _
FILE_ATTRIBUTE_NORMAL, 0)
' Définition de la trame
Buffer = Emetteur & Chr(0) & Destinataire & Chr(0) & LeMessage & Chr(0)
' Envoi
If (HWNDSlot <> INVALID_HANDLE_VALUE) Then
Call WriteFile(HWNDSlot, Buffer, Len(Buffer), NombreEcrit, 0)
SendMessage = True
Else
SendMessage = False
End If
' Fermeture du Slot
Call CloseHandle(HWNDSlot)
End Function