Einzelnen Beitrag anzeigen

Masteric

Registriert seit: 1. Aug 2007
Ort: Melsungen
155 Beiträge
 
Delphi 7 Professional
 
#1

Warum funktionieren meine Messages nicht?

  Alt 13. Jul 2008, 00:50
Hi,

also ich habe das mit dem Hooken hinbekommen, so jetzt möchte ich die Daten die der Hook abfaängt an meine Anwendung über Messages senden, es kommt nur, wie wahrscheinlich erwartet, nichts an.

Ich habe dann um es überhaupt zu testen noch eine 2. Anwendung programmiert.

Die Erste, die die Daten erstmal nur Empfangen und in einem Edit anzeigen soll, sieht so aus:

Delphi-Quellcode:
unit Unit1;

interface

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

const WM_mymessage=WM_User+2;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
  private
    procedure WndProc(var msg : TMessage); override;
      { Private-Deklarationen }
  public
       { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WndProc(var msg : TMessage);
begin
  if msg.Msg = WM_mymessage then
  begin
    Edit1.Text:=inttostr(msg.WParam);
  end else begin
    inherited WndProc(msg);
  end;
end;

end.
Die Zweite, die ich zum testen benutze sieht so aus:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;
const WM_mymessage=WM_User+2;
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
postmessage(HWND_BROADCAST,WM_mymessage,5,5);
end;

end.
Da ich das Fensterhandle der Anwendung nicht immer rausfinden will, broadcaste ich sie einfach an alle. Eigentlich sollte doch jetzt im Edit 1 eine Message ankommen, wenn das Empfangsprogramm läuft und das 2. gestartet wird, oder?

Gruß Materic
"Programmieren ist eine der universellsten, allübergreifendsten und höchsten von Menschen erreichten Formen der Kreativität."
Nur weil Gott die Welt in 6 Tagen erschaffen hat, heisst das nicht, dass Informatiker alles in 6 Tagen programmieren können.
  Mit Zitat antworten Zitat