Comme le titre l'explicite, c'est un programme qui permet d'envoyer des messages sur le reseau (ou domaine) de la meme façon qu'un "net send".
Attention je precise que mon programme reprend une API windows, ce n'est pas un vulgaire "Shell()" car désolé mais cette méthode me fait gerber !
Source / Exemple :
{ -------------------------------------
Programme : Librairie de "Net Sender"
Auteur : LEVEUGLE Damien
Année : 2005
API Utilisé : "NetMessageBufferSend"
Explication : Permet d'envoyer des messages de type "Net Send" au utilisateur du reseau local
ou du domaine.
------------------------------------- }
unit ElgSender;
interface
uses Windows, SysUtils, Classes;
{ Fonction importée (API) }
function ElgNetMessageBufferSend( WcServeur : PWideChar;
WcDestination : PWideChar;
WcSource : PWideChar;
WcBuffer : PWideChar;
iBufferLen : Cardinal) : Longint; stdcall; external 'NETAPI32.DLL' name 'NetMessageBufferSend';
{ Fonctions à appeler pour l'envoi de message }
function NetSend( sDestinataire : string; sMessage : string; sSource : string; sServeur : string ) : Longint;
{ Fonction de convertion }
function AllouePointeur( Chaine : string ) : PWideChar;
implementation
{ Fonction qui permet d'enoyer un message sur le réseau}
function NetSend( sDestinataire : string; sMessage : string; sSource : string; sServeur : string ) : Longint;
{ ---------------------------------------------------------------------------------------------
sDestinataire : Nom de la machine client à qui envoyer le message
sMessage : Message à envoyer
sSource : [Facultatif] Nom de la machine qui l'envoi (doit etre un nom de machine valide
sur le reseau)
sServeur : [Facultatif] Si un serveur de domaine existe on peut le preciser,
sinon on peut aussi mettre le meme nom de machine
que la machine Source. (sServeur = sSource)
----------------------------------------------------------------------------------------------- }
var
// Pointeurs
PDestinataire : PWideChar;
PMessage : PWideChar;
PSource : PWideChar;
PServeur : PWideChar;
begin
try
// Convertie les chaines de type String en Pointeur sur WideChar
PDestinataire := AllouePointeur( sDestinataire );
PMessage := AllouePointeur( sMessage );
PSource := AllouePointeur( sSource );
PServeur := AllouePointeur( sServeur );
// Fonction d'envoi (API Windows)
Result := ElgNetMessageBufferSend( PServeur, PDestinataire, PSource,
PMessage, (Length(sMessage) * SizeOf(WideChar) + 1) );
finally
// Libère les buffers
FreeMem( PServeur );
FreeMem( PSource );
FreeMem( PMessage );
FreeMem( PDestinataire );
end;
end;
{ Genere des Pointeurs de WideChar, en fonction de la chaine passé }
function AllouePointeur( Chaine : string ) : PWideChar;
var
Taille : Integer;
PPointeur : PWideChar;
begin
Taille := Length(Chaine) * SizeOf(WideChar) + 1;
GetMem( PPointeur, Taille );
// Si chaine inexistante le pointeur sera Null
if ( Trim( Chaine ) = '' ) then PPointeur := nil else StringToWideChar( Chaine, PPointeur, Taille );
Result := PPointeur;
end;
end.
Conclusion :
Pour envoyé un message assuré vous que sur votre poste et celui du client le service Affichage des message est démarré.
Sinon pour envoyé des messages en mettant un autre nom de machine que la votre il vous faut des droits suffisants !
Vous pouvez sans relache critiquer mon code, merci !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.