Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Как отловить сообщение приходящее от net send?   Найти похожие ветки 

 
LexaTyukha   (2004-01-20 16:52) [0]

Как отловить сообщение приходящее от net send?
Схема такая: отловить, обработать текст как мне нужно (отобразить в своей программе), блокировать Application Popup.


 
LexaTyukha   (2004-01-29 13:49) [1]

Удалено модератором
Примечание: Создание пустых сообщений ...


 
Rouse_ ©   (2004-01-29 17:17) [2]

В 98 вот так...

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls;

type
 TForm1 = class(TForm)
   Timer1: TTimer;
   Memo1: TMemo;
   procedure Timer1Timer(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   MailSlot: THandle;
   ErrStr: array [0..MAX_PATH] of Char;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
 CurrentSize, Size, Count: DWORD;
 Msg: String;
 Err: LongBool;
 I: Integer;
 From, sTo: String;
begin
 Count := 0;
 Err := GetMailSlotInfo(MailSlot, nil, Size, @Count, nil);
 if not Err then
 begin
   FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM,

                   nil,
                   GetLastError,
                   0,
                   @ErrStr[0],
                   MAX_PATH,
                   nil);
   Memo1.Lines.Add("Can not GetMailSlotInfo: " + String(ErrStr));
   Exit;
 end;
 if Count > 0 then
 begin
   SetLength(Msg, Size);
   ReadFile(MailSlot, Msg[1], Size, CurrentSize, nil);
   I := 1;
   while (Msg[I] <> #0) do Inc(I);
   From := Copy(Msg, 1, I - 1);
   Delete(Msg, 1, I);
   I := 1;
   while (Msg[I] <> #0) do Inc(I);
   sTo := Copy(Msg, 1, I - 1);
   Delete(Msg, 1, I);
   OemToChar(PChar(From), PChar(From));
   OemToChar(PChar(sTo), PChar(sTo));
   OemToChar(PChar(Msg), PChar(Msg));
   Memo1.Lines.Add("Получено сообщение от: " + From +
   " для " + sTo + #13#10 + Msg);
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 MailSlot := CreateMailslot("\\.\mailslot\messngr", 0, MAILSLOT_WAIT_FOREVER, nil);
 if MailSlot = INVALID_HANDLE_VALUE then
 begin
   FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM,
                   nil,
                   GetLastError,
                   0,
                   @ErrStr[0],
                   MAX_PATH,
                   nil);
   Memo1.Lines.Add("Can not create mailslot: " + String(ErrStr));
   Exit;
 end;
end;

end.


А в NT этот же код, но предварительно сделав вот так:

uses ...WinSvc;

...

var
 hSCM, hSrv: THandle;
 SS:SERVICE_STATUS;
begin
 hSCM:=OpenSCManager(nil,nil,SC_MANAGER_ALL_ACCESS);
 hSrv:=OpenService(hSCM,"Messenger",SERVICE_ALL_ACCESS);
 ControlService(hSrv,SERVICE_CONTROL_STOP,SS);
 CloseServiceHandle(hSrv);
 CloseServiceHandle(hSCM);


Желаю успехов


 
LexaTyukha   (2004-01-29 17:59) [3]

Спасибо! Буду пробовать!



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.028 c
14-1078575511
dr Tr0jan
2004-03-06 15:18
2004.04.04
Музон из ККНД


11-1058794263
IronWit
2003-07-21 17:31
2004.04.04
Как программно создать и удалить combobox


4-1075366573
barby
2004-01-29 11:56
2004.04.04
Удаление непустой директории


3-1078858782
Дмитрий Татарников
2004-03-09 21:59
2004.04.04
Запрос по дате в DBISAM


1-1079178882
Layner
2004-03-13 14:54
2004.04.04
Помогите показать окно SHOWMODAL в MDI приложении...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский