Пример работы с MailSlot
Falk0ner, вс, 06/07/2008 - 15:34.
procedure TForm1.Button1Click(Sender: TObject);
var
hSlot1 : THandle;
lpszSlotName: LPSTR;
begin
lpszSlotName := '\\\\.\\mailslot\\sample_mailslot';
hslot1 := CreateMailslot (lpszSlotName,
0,
MAILSLOT_WAIT_FOREVER,
nil);
//тут поидее должна быть обработка ошибки, если не удалось создать
//Далее работаем с ним, как с файлом т.е. WriteFile и т.д.
// CloseHandle(hSlot1); //а кады закрываем за собой дескриптор,
//то память чистится т.е. все, что мы туда поназаписали удаляется
end;
var
hSlot1 : THandle;
lpszSlotName: LPSTR;
begin
lpszSlotName := '\\\\.\\mailslot\\sample_mailslot';
hslot1 := CreateMailslot (lpszSlotName,
0,
MAILSLOT_WAIT_FOREVER,
nil);
//тут поидее должна быть обработка ошибки, если не удалось создать
//Далее работаем с ним, как с файлом т.е. WriteFile и т.д.
// CloseHandle(hSlot1); //а кады закрываем за собой дескриптор,
//то память чистится т.е. все, что мы туда поназаписали удаляется
end;
Автор ответа: Baa
Взято с Vingrad.ru http://forum.vingrad.ru
WinAPI->Windows->Процессы...->
Тут Baa немного ошибся. Он написал открытие мэйлслота в C++ стиле:
lpszSlotName := '\\\\.\\mailslot\\sample_mailslot';
а надо так:
lpszSlotName := '\\.\mailslot\sample_mailslot';
т.е. вместо \\ надо просто \
Автор: p0s0l
Взято с Vingrad.ru http://forum.vingrad.ru
Отправить комментарий