AGB  ·  Datenschutz  ·  Impressum  







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

HWND_Broadcast abfangen

Offene Frage von "ecHo89"
Ein Thema von ecHo89 · begonnen am 20. Mär 2009 · letzter Beitrag vom 26. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
ecHo89

Registriert seit: 13. Apr 2008
97 Beiträge
 
#1

HWND_Broadcast abfangen

  Alt 20. Mär 2009, 17:09
Hi,

bin seit mehr als 1 Woche am grübel bekomms, aber einfach net gebacken...

In der DLL:
Delphi-Quellcode:
 lpView: TDLLData;
          CopyMemory(@lpView^.mouse, PMOUSEHOOKSTRUCT(lParam), sizeof(TMOUSEHOOKSTRUCT));
          SendMessage(HWND_BROADCAST, lpView^.WM_MOUSEHOOKMSG, wParam, lParam);
In meinem Programm:

Delphi-Quellcode:
function InstallHooks(Hwnd: HWND): Boolean; stdcall; external 'hooks.dllname 'InstallHooks';
function UninstallHooks: Boolean; stdcall; external 'hooks.dllname 'UninstallHooks';

var WM_MOUSEHOOKMSG:cardinal;

InstallHooks(Application.Handle);

procedure TFormMain.GetHWNDBroadcast(var Msg: TMsg);
begin
if Msg.message = WM_MOUSEHOOKMSG then
 begin
    Memo1.Lines.Add(IntToStr(Msg.hwnd));
    (Self.Refresh;)
 end;
 (inherited;)
end;

procedure TformMain.FormCreate(Sender: TObject);
begin
  WM_MOUSEHOOKMSG := RegisterWindowMessage('WM_MOUSEHOOKMSG');
end;
Scheint irgendwas an der Verarbeitung von lpView zu hängen...?
Vielen Dank für alle Tipps
  Mit Zitat antworten Zitat
ecHo89

Registriert seit: 13. Apr 2008
97 Beiträge
 
#2

Re: HWND_Broadcast abfangen

  Alt 23. Mär 2009, 15:38
habe immer noch keine funktionierende möglichkeit gefunden, trotz viel suchen und probieren
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: HWND_Broadcast abfangen

  Alt 23. Mär 2009, 15:46
Wird GetHWNDBroadcast überhaupt aufgerufen? Hast du auch die Message bei der Definition mit dazugeschrieben?
procedure GetHWNDMessage(Msg : TMsg); Message WM_MOUSEHOOKMSG;
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
ecHo89

Registriert seit: 13. Apr 2008
97 Beiträge
 
#4

Re: HWND_Broadcast abfangen

  Alt 23. Mär 2009, 15:51
[Fehler] runmiddlebutton.pas(18): Undefinierter Bezeichner: 'WM_MOUSEHOOKMSG'
[Fehler] runmiddlebutton.pas(18): Ungültiger Botschaftsmethoden-Index

Wenn ich das mit dem message dahinter mache
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: HWND_Broadcast abfangen

  Alt 23. Mär 2009, 15:53
Deine eigene Message muss natürlich auch Deklariert sein..
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
ecHo89

Registriert seit: 13. Apr 2008
97 Beiträge
 
#6

Re: HWND_Broadcast abfangen

  Alt 23. Mär 2009, 15:59
So bekomme keinen Fehler mehr, aber woher weiß ich welchen Wert ich hinter WM_USER brauche?

Kann meine TMSG auch behandeln und im Memo ausgeben, aber alle Werte sind 0, d.h. irgendwie empfang ich die Message nicht richtig.
Angehängte Dateien
Dateityp: zip mousehook_191.zip (282,3 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
ecHo89

Registriert seit: 13. Apr 2008
97 Beiträge
 
#7

Re: HWND_Broadcast abfangen

  Alt 23. Mär 2009, 16:28
Habe jetzt WM_USER = 400, da =1 fehler produzieren könnte.

Habe ein bisschen mit dem Pointer experimentiert und direkt ein Debugging Exeption ausgelöst, d.h. es ging gar nix mehr... Taskmanager ist zwar noch aufgegangen konnte aber mit der Tastur und Maus nicht bedient werden. Diese Sachen sind nicht in der ZIP-Datei drin. Die Version läuft stabil, aber es kommen halt keine Daten an
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: HWND_Broadcast abfangen

  Alt 23. Mär 2009, 16:32
Ich persönlich teste Sachen, die zB im winlogon mitgeladen werden in einer Virtual Machine. Dann sind solche Abstürze kein Problem und in 20 Sekunden ist dass Betriebsystem neu geladen.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
ecHo89

Registriert seit: 13. Apr 2008
97 Beiträge
 
#9

Re: HWND_Broadcast abfangen

  Alt 23. Mär 2009, 16:36
okay, magst du dir mal die ZIP angucken. 100% lauffähig, aber die Message ist halt einfach leer :/
  Mit Zitat antworten Zitat
ecHo89

Registriert seit: 13. Apr 2008
97 Beiträge
 
#10

Re: HWND_Broadcast abfangen

  Alt 25. Mär 2009, 17:14
Habe es jetzt einfach so gemacht (ich möchte im Moment ja eh nur registrieren, ob Mausklick und dann die Position)

GetCursorPos
und dann ne WM_COPYDATA Message mit den Koordinaten. Aber das Problem is GetCursorPos, da es nur die Position auf der Form anzeigt. Wie kann ich aus lpView: PDLLData (PDLLData^=TDLLData) diese Information (Mauspunkt) holen?

Delphi-Quellcode:
const
MMFName = 'HookingSampleDLL_Data';
type
TDLLData = packed record
wnd:HWND;
ProcessID,
ThreadID:DWORD;
nCode: Integer;
WM_MOUSEHOOKMSG,
WM_KEYBHOOKMSG: UINT;
mouse: TMOUSEHOOKSTRUCT;
end;
PDLLData = ^TDLLData;
var
lpView: PDLLData;
hMap: THandle;
Ich weiß einfach nich wie ich aus dem FileMapping, diese Infos herausbekomme, habe schon sehr viel versucht und gesucht... (wollt gar nich wissen, wie mein Desktop aussieht... :/)

Gruß Malte
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:33 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