AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Message kommt nicht an (Send/PostMessage)

Ein Thema von Neutral General · begonnen am 20. Jan 2011 · letzter Beitrag vom 20. Jan 2011
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Message kommt nicht an (Send/PostMessage)

  Alt 20. Jan 2011, 15:49
Hallo,

Wollte meinem Programm aus einem fremden Prozess (Hook-DLL) eine Nachricht senden.
Dummerweise kommt bei meinem Hauptprogramm aber nichts an. Kann mir nicht erklären wieso.

Gemeinsam genutzte Unit (DLL & EXE):
Delphi-Quellcode:
var
  WM_HOOKPASTE: Integer;

initialization
  WM_HOOKPASTE := RegisterWindowMessage('MultiPaste\WM_HOOKPASTE');
DLL:

Delphi-Quellcode:
// In IPCRec.ClipboardHandle steht das Handle was das Hauptprogramm mir per IPC (MMF) übermittelt hat
// Das habe ich nachgeprüft und das ist korrekt.
SendMessage(IPCRec.ClipboardHandle,WM_HOOKPASTE,0,0);
Programm:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var IPCRec: TIPCRec;
begin
  FClipBrdEvents := TClipboardEvents.Create;
  FClipBrdEvents.OnPaste := PasteEvent;
  
  FMapping := CreateFileMapping(INVALID_HANDLE_VALUE,nil,PAGE_READWRITE,0,SizeOf(TMMFRec),'#MC_FileMappingObj#');

  IPCRec := MapViewOfFile(FMapping,FILE_MAP_WRITE,0,0,SizeOf(TIPCRec));
  try
    IPCRec^.ClipboardHandle := FClipBrdEvents.Handle;
  finally
    UnmapViewOfFile(HookPtr);
  end;
end;

procedure TClipboardEvents.Create;
begin
  FHandle := AllocateHwnd(MsgProc);
end;

procedure TClipboardEvents.MsgProc(var Msg: TMessage);
begin
  if Msg.Msg = WM_HOOKPASTE then
  begin
    if Assigned(FOnPaste) then
      FOnPaste(Self);
  end
  else
    DefWindowProc(FHandle,Msg.Msg,Msg.WParam,Msg.LParam);
end;
Verstehe leider nicht warum da nichts ankommt. Habs auf nem WinXP Rechner getestet.
Hab auch schonmal an HWND_BROADCAST versendet und versucht die Message im Application.OnMessage abzufangen. Aber da kam leider auch nichts an

Kann mir da vllt. jemand helfen?

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Message kommt nicht an (Send/PostMessage)

  Alt 20. Jan 2011, 17:06
welchen Wert bekommst du für WM_HOOKPASTE? Ich würde vermuten das die Sonderzeichen in deinem Namen zu Problemen führen und da keine gültige MessageID generiert wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#3

AW: Message kommt nicht an (Send/PostMessage)

  Alt 20. Jan 2011, 17:10
Und wie ist das mit den Rechten?

z.B. Ein Userprozess kann keine Messages an einen Admin-Prozess schicken.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#4

AW: Message kommt nicht an (Send/PostMessage)

  Alt 20. Jan 2011, 18:50
z.B. Ein Userprozess kann keine Messages an einen Admin-Prozess schicken.
Ach, haben sie's auf XP im Nachhinein doch noch behoben?

Ich dachte das Problem ist erst mit Vista relevant ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#5

AW: Message kommt nicht an (Send/PostMessage)

  Alt 20. Jan 2011, 19:47
Ich dachte ich hätte irgendwo 'ne 7 gelesen

OK und was sagt GetLastError vom SendMessage?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (20. Jan 2011 um 19:49 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz