Отправка WinPopup сообщения через mailslots
Falk0ner, вс, 06/07/2008 - 15:34.
Отправка WinPopup сообщения через mailslots
procedure TForm1.Button1Click(Sender: TObject);
{©Drkb v.3(2007): www.drkb.ru}
var
MSHandle: THandle;
MSMessage: array [0..2] of String;
ResultMsMessage: String;
MSWrite: DWORD;
ServerName: String;
begin
ServerName := Edit1.Text; // Имя компьютера
if ServerName = '' then ServerName := '*\';
if ServerName[Length(ServerName)] <> '\' then ServerName := ServerName + '\';
// Оккрываем на удаленном компьютере мэйслот для записи
MSHandle := CreateFile(PChar('\\' + ServerName + 'mailslot\messngr'),
GENERIC_WRITE, // or GENERIC_READ,
FILE_SHARE_READ,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if not Win32Check(MSHandle <> INVALID_HANDLE_VALUE) then Exit;
// Подготавливаем сообщение
MSMessage[0] := Edit2.Text; // От кого
MSMessage[1] := Edit3.Text; // Кому
MSMessage[2] := Memo1.Text; // Текст сообщение
// Преобразование в DOS кодировку
CharToOem(PChar(MSMessage[0]), PChar(MSMessage[0]));
CharToOem(PChar(MSMessage[1]), PChar(MSMessage[1]));
CharToOem(PChar(MSMessage[2]), PChar(MSMessage[2]));
ResultMsMessage := MSMessage[0] + #0 + MSMessage[1] + #0 + MSMessage[2];
// Пишем сообщение
WriteFile(MSHandle, Pointer(PChar(ResultMsMessage))^, Length(ResultMsMessage), MSWrite, nil);
Win32Check(MSWrite = Length(ResultMsMessage));
CloseHandle(MSHandle);
end;
Взято из http://forum.sources.ru
Автор: Rouse_
{©Drkb v.3(2007): www.drkb.ru}
var
MSHandle: THandle;
MSMessage: array [0..2] of String;
ResultMsMessage: String;
MSWrite: DWORD;
ServerName: String;
begin
ServerName := Edit1.Text; // Имя компьютера
if ServerName = '' then ServerName := '*\';
if ServerName[Length(ServerName)] <> '\' then ServerName := ServerName + '\';
// Оккрываем на удаленном компьютере мэйслот для записи
MSHandle := CreateFile(PChar('\\' + ServerName + 'mailslot\messngr'),
GENERIC_WRITE, // or GENERIC_READ,
FILE_SHARE_READ,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if not Win32Check(MSHandle <> INVALID_HANDLE_VALUE) then Exit;
// Подготавливаем сообщение
MSMessage[0] := Edit2.Text; // От кого
MSMessage[1] := Edit3.Text; // Кому
MSMessage[2] := Memo1.Text; // Текст сообщение
// Преобразование в DOS кодировку
CharToOem(PChar(MSMessage[0]), PChar(MSMessage[0]));
CharToOem(PChar(MSMessage[1]), PChar(MSMessage[1]));
CharToOem(PChar(MSMessage[2]), PChar(MSMessage[2]));
ResultMsMessage := MSMessage[0] + #0 + MSMessage[1] + #0 + MSMessage[2];
// Пишем сообщение
WriteFile(MSHandle, Pointer(PChar(ResultMsMessage))^, Length(ResultMsMessage), MSWrite, nil);
Win32Check(MSWrite = Length(ResultMsMessage));
CloseHandle(MSHandle);
end;
Отправить комментарий