Текущий архив: 2003.04.03;
Скачать: CL | DM;
Внизкак отправлять сообщения по локальной сети???? Найти похожие ветки
← →
LeReve (2003-02-09 20:24) [0]как отправлять сообщения по локальной сети????
← →
Ketmar (2003-02-09 21:18) [1]net send ...
Satanas Nobiscum! 09-Feb-XXXVIII A.S.
← →
_Narayan_ (2003-02-10 06:12) [2]function mSendPopup(RealName,mTo,mFrom,MsgText: String): Boolean;
var MailSlotHandle: THandle;
Len, ResLen: DWORD;
FinalString, mName: String;
begin
MailSlotHandle:=CreateFile(pchar("\\"+mName+"\mailslot\messngr"),GENERIC_WRITE,FILE_SHARE_READ,NIL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
CharToOEM(PChar(mTo),PChar(mTo));
CharToOEM(PChar(mFrom),PChar(mFrom));
CharToOEM(Pchar(MsgText),Pchar(MsgText));
FinalString:=mTo+#0+mFrom+#0+MsgText;
Len:=Length(FinalString);
WriteFile(MailSlotHandle,Pointer(PChar(FinalString))^,Len,ResLen,nil);
CloseHandle(MailSlotHandle);
end;
что то такое...
← →
gn (2003-02-10 07:04) [3]если стаит чтото типа 2000 xp то там сервис сообщений поднят постоянно и просто в администрирование лезиш цепляешся к тачке и дастаюш юзеров мессагами
← →
O6OPMOT (2003-02-10 13:19) [4]писaть: ---------------------------------------------------------------------
function SendMessage(ToComputer, Msg:string): boolean;
var
hToSlot : THandle;
BytesWritten : DWord;
FullSlot,
Data : String;
begin
CharToOEM(PChar(Msg), PChar(Msg)); // шоп поняли по pyсски.
Data:=ComputerName+#0+ToComputer+#0+Msg;
FullSlot:="\\"+ToComputer+"\mailslot\"+MSlotName;
hToSlot:=CreateFile(
PChar(FullSlot),
GENERIC_WRITE,
FILE_SHARE_READ,
NIL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
0);
if hToSlot<>INVALID_HANDLE_VALUE then
begin
BytesWritten := 0;
If (NOT
WriteFile(hToSlot,
Pointer(Data)^,
Length(Data),
BytesWritten,
NIL)) OR
(BytesWritten <> Length(Data)) then Result:=false Else Result:=true;
end; // hToSlot<>INVALID_HANDLE_VALUE
end;
читaть: --------------------------------------------------------------------
procedure ReadMessage(NextMsgSize, MsgCount:DWord);
var Newline,
MsgSize:DWord;
begin
SetLength(NewLine,NextMsgSize);
ReadFile(MailslotHandle, PChar(NewLine)^, NextMsgSize, MsgSize, nil);
Label1.Caption:=newline;
// сpaзy скaжy что в лaбел всё не кинется, потомy что pежется нa символе #0, //
тaк что пpишедшее сообщения paзбиpaть pyкaми. :)
end;
В тaймеp с интеpвaлом в 200 (можно меньше, но зaчем?) встaвляем: -------------
procedure TFormMain.TimerTimer(Sender: TObject);
var
NextMsgSize,
MsgCount:DWord;
begin
GetMailSlotInfo(MailslotHandle, NIL, NextMsgSize, @MsgCount, NIL );
If MsgCount>0 then ReadMessage(NextMsgSize,MsgCount);
end;
В тексте пpогpaммы: ----------------------------------------------------------
var
MailslotHandle:Word;
MSlotName:string;
// нa FormCreate:
MSlotName:="messngr";
MailslotHandle:=CreateMailSlot("\\.\mailslot\+MSlotName, 0, 0, nil);
if MailslotHandle=INVALID_HANDLE_VALUE then
begin
Application.Terminate;
end;
// отпpaвление сообщения:
if SendMessage("комy","лови коня! :)")=true then
showmessage("was send!");
// if комy - * тогдa шлётся всем.
Страницы: 1 вся ветка
Текущий архив: 2003.04.03;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.009 c