Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Windows Messenger   Найти похожие ветки 

 
hfa ©   (2004-02-16 09:29) [0]

Прошу вас мастера помогите в следующем! Как перехватить сообщение и от кого послано время дату приходящие в Windows Messenger.. Заранее Спасибо..


 
Rouse_ ©   (2004-02-16 10:32) [1]

Можно сниффером сесть на 138 порт и ловить там.
Можно програмно, но для этого придется отключить службу сообщений и выполнить следующий код:

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("&Iuml;&icirc;&euml;&oacute;&divide;&aring;&iacute;&icirc; &ntilde;&icirc;&icirc;&aacute;&ugrave;&aring;&iacute;&egrave;&aring; &icirc;&ograve;: " + From +
   " &auml;&euml;&yuml; " + 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.


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


 
hfa ©   (2004-02-16 10:52) [2]

а на XP работает? да и помомему мессенгер использует не один порт.. и где можно найти инфу по снифферу?


 
hfa ©   (2004-02-16 10:56) [3]

а как отключить службу сообщений?


 
Rouse_ ©   (2004-02-16 11:12) [4]

> а на XP работает?
Да

> а как отключить службу сообщений?
services.msc - в нм ищешь "Служба сообщений"



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

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
1-1080547390
Sauron_ua
2004-03-29 12:03
2004.04.18
Текстури в DirectX


7-1076352679
SAmoilov
2004-02-09 21:51
2004.04.18
Обращение к дисководу и CD-ROM


14-1080209085
Карелин Артем
2004-03-25 13:04
2004.04.18
Зацените что я написал по безопасности FireBird.


8-1072787252
кир
2003-12-30 15:27
2004.04.18
Как сгенерировать звук на левый и правый канал отдельно и как...


4-1074765750
Vova_2004
2004-01-22 13:02
2004.04.18
прозрачный Static