f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 2022
-
20 avril 2006 à 17:06
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 2010
-
15 oct. 2008 à 17:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 15 oct. 2008 à 17:28
Salut, excellent soft, par contre mes messages sont reçus 2 fois.
je suis passé en debug et rien ne laisse penser que ça l'envoie 2 fois ..
help ?
cs_L_art_ment
Messages postés19Date d'inscriptionvendredi 21 septembre 2007StatutMembreDernière intervention30 janvier 2009 15 nov. 2007 à 20:12
Ah oé, c'est le nom de la machine, pas le nom d'utilisateur ...
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 9 nov. 2007 à 20:33
Ba si tu sais ce que c'est, alors c'est tout bon :-)
T'as plus qu'à copier ma fonction dans ton programme (ne pas oublier le Uses Windows) et l'appeler.
Emetteur: Tu mets ce que tu veux on s'en fou..
Destinataire: Nom de la machine à laquelle tu veux poster le message
LeMessage : Le message que tu veux envoyer...
Finger in The Noze !
cs_L_art_ment
Messages postés19Date d'inscriptionvendredi 21 septembre 2007StatutMembreDernière intervention30 janvier 2009 9 nov. 2007 à 20:01
Oui c'est la commande qui permet d'envoyer des messages à un utilisateur du reseau ...
Mais euh le paraméttre destinataire, ce n'est pas plutot le nom de la machine plutot ?
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 9 nov. 2007 à 19:34
Elle est compliqué ma fonction ? Y'a que des string en paramètre :-D
Déja tu sais ce que c'est un net send ?
cs_L_art_ment
Messages postés19Date d'inscriptionvendredi 21 septembre 2007StatutMembreDernière intervention30 janvier 2009 8 nov. 2007 à 14:24
Euh désolé aprés tout s'temps que ce post est apparu, j'suis pas spécialement doué en delphi, et là j'comprend pas trop, en fait j'comprend rien, qu'est ce qu'il faut en faire de ce bout de code ? :s
Si vous pouviez m'éclairer ...
Merci
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 23 avril 2006 à 10:05
Juste pour dire que j'ai testé ce programme en cours, et je me suis bien fendu la geule en me faisant passé pour d'autre. Donc çà marche très bien !
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 21 avril 2006 à 12:33
Je sais mais je préfère caster explicitement, il n'y à pas de raison à çà mais au moins je sais ce qui se passe vraiment quand je regarde mon code.
De même pour la fonction API MessageBoxA(), je caste les arguments avec des PChar, alors qu'il n'est pas necessaire de le faire avec des chaines constantes.
Mais merci pour toutes ses précisions ;-)
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 21 avril 2006 à 11:10
un truc aussi, il me semble que mettre PCHAR(...) pour un argument de type PAnsiChar ça ne sert a rien car delphi s'occupe seul des transtypage dans ces cas la ...
15 oct. 2008 à 17:28
je suis passé en debug et rien ne laisse penser que ça l'envoie 2 fois ..
help ?
15 nov. 2007 à 20:12
9 nov. 2007 à 20:33
T'as plus qu'à copier ma fonction dans ton programme (ne pas oublier le Uses Windows) et l'appeler.
Emetteur: Tu mets ce que tu veux on s'en fou..
Destinataire: Nom de la machine à laquelle tu veux poster le message
LeMessage : Le message que tu veux envoyer...
Finger in The Noze !
9 nov. 2007 à 20:01
Mais euh le paraméttre destinataire, ce n'est pas plutot le nom de la machine plutot ?
9 nov. 2007 à 19:34
Déja tu sais ce que c'est un net send ?
8 nov. 2007 à 14:24
Si vous pouviez m'éclairer ...
Merci
23 avril 2006 à 10:05
21 avril 2006 à 12:33
De même pour la fonction API MessageBoxA(), je caste les arguments avec des PChar, alors qu'il n'est pas necessaire de le faire avec des chaines constantes.
Mais merci pour toutes ses précisions ;-)
21 avril 2006 à 11:10
on peu donc en toute logique ecrire :
CreateFile( '\\' + Destinataire + '\MAILSLOT\MESSNGR', {est convertie directement en PAnsiChar}
GENERIC_WRITE, FILE_SHARE_READ, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );
c'est comme les Array of char qu'on peut assigner ou transmettre directement aux strings :
var
S : string;
const
C1 : array[0..5] of char = '012345';
begin
S := C1;
end;
21 avril 2006 à 09:59
Je fais la modif, et je repost !
20 avril 2006 à 17:06
function SendMessage(const Emetteur, Destinataire, LeMessage : string) : Boolean;
var
HWNDSlot : THandle;
Buffer : String;
lpNumberOfBytesWritten : Cardinal;
begin
result := false;
lpNumberOfBytesWritten := 0;
HWNDSlot := CreateFile( PChar('\\' + Destinataire + '\MAILSLOT\MESSNGR'),
GENERIC_WRITE, FILE_SHARE_READ, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );
Buffer := Emetteur + #0 + Destinataire + #0 + LeMessage + #0;
try
result := (HWNDSlot <> INVALID_HANDLE_VALUE);
if result then
result := WriteFile( HWNDSlot, PChar(Buffer)^, Length(Buffer),
lpNumberOfBytesWritten, nil );
finally
CloseHandle( HWNDSlot );
end;
n'oublis pas que le compilateur convertis automatiquement les LongBool ou WordBool en Boolean.
car dans un LongBool, False = Null, donc dés qu'un Bool n'est pas Null c'est qu'il est a True.