AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Windows Messages an andere Programme abfangen
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Messages an andere Programme abfangen

Offene Frage von "Palando"
Ein Thema von Palando · begonnen am 22. Jul 2005 · letzter Beitrag vom 22. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Palando

Registriert seit: 5. Mai 2005
72 Beiträge
 
#1

Windows Messages an andere Programme abfangen

  Alt 22. Jul 2005, 20:21
Hallo DP!

Mir war langweilig und ich habe mir schon lange vorgenommen, endlich mal die WinAPI ein bisschen besser verstehen zu wollen, also habe ich mich an ein Programm gemacht, das WindowsMessages an andere Programme (Wie Minimieren, der Befehl sichtbar zu werden oder der Schließen-Befehl) abfangen soll, bestimmten Code ausführen soll und die Message (unter Umständen auch verändert) weiterschicken soll.

Dann kam mir die spontane Eingebung, ein brennender Busch flog in den Raum und eine dahinhallende Stimme sprach: "Hooksssssssss" (hat leider gelispelt... :/)

Nunja, dachte ich mir, und quälte mich durch den passenden msdn-Artikel. Ich hab auch gedacht, dass ich, je nach Message, vielleicht die WH_CBT beziehungsweise WH_GETMESSAGE Hooks verwenden könnte. Nur leider beschränken sich die meisten Hook-Tutorials auf Maus-und-Tastaturhooks, sodass man zu den anderen Hooks leider kaum Hilfen findet. Ich hab dann anhand der msdn-Beschreibungen und einiger Codeschnipsel aus der Codelib a weng rumgetan aber es is leider nix gescheites dabei rausgekommen, was au nur ansatzweise funktionieren könnte. (Gut, mittlerweile bin ich immerhin soweit, dass der Explorer nichtmehr ständig abstürzt, wenn ich debugge )

Ich komme leider nicht weiter und dachte mir, die DP weiß da sicher eine tolle, einfach und mich-zum-ärgern-bringende Antwort, weil ich selber nicht draufgekommen bin .
Sind Hooks vielleicht sogar der komplett falsche Weg? vielleicht was ganz anderes?

Danke schonmal für eure Hilfe,
Palando
Markus
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Windows Messages an andere Programme abfangen

  Alt 22. Jul 2005, 20:30
Ich würde (falls das geht) die WndProc umbiegen - also die Adresse der Ziel-Fenzer-Prozedur auf deine umbiegen, was mit der Nachricht machen, und dann die alte aufrufen

Vielleicht geht das auch nur mit einer dll, die du dann in den fremden Prozess injezierst, aber irgndwie geht das doch bestimmt ..., oder ?

(Keine Garantie - Ich weis nichts, ich glaube es nur)
  Mit Zitat antworten Zitat
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Windows Messages an andere Programme abfangen

  Alt 22. Jul 2005, 20:32
Hallo!

Hier ist ein Tutorial von Delphi-Source, villeicht hilft dir das weiter.
Hooks

MfG Master
.: Meine Homepage :.
http://www.micha-hertel.de
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Windows Messages an andere Programme abfangen

  Alt 22. Jul 2005, 20:34
Wo genau ist denn dein Problem mit WH_GETMESSAGE. In meinem Tut beschreibe ich es eigentlich so generisch, daß du auch in der Lage sein solltest einen eigenen WH_GETMESSAGE-Hook zu implementieren.

@Masterof: Es gibt bereits eine aktuellere Version dieses meines Tutorials hier. Das auf DS ist nicht aktuell, da man dort auf eine Finalversion meines Tuts warten möchte.
  Mit Zitat antworten Zitat
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Windows Messages an andere Programme abfangen

  Alt 22. Jul 2005, 20:40
Hallo!

Danke für deinen Hinweiß, ich werde es mir mal ansehen.

MfG Master
.: Meine Homepage :.
http://www.micha-hertel.de
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#6

Re: Windows Messages an andere Programme abfangen

  Alt 22. Jul 2005, 20:45
Zitat von Masterof:
Danke für deinen Hinweiß, ich werde es mir mal ansehen.
Keine Ursache. Bei weiteren dennoch auftretenden Fragen, fragst du hier. Das Tutorial wird demnächst im Rahmen eines Gemeinschaftsprojektes neu aufgelegt, so daß dein Feedback dort einfließen könnte.
  Mit Zitat antworten Zitat
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Windows Messages an andere Programme abfangen

  Alt 22. Jul 2005, 21:06
Hallo!!

Also ich habe mir das Tutorial angeschaut, und die erste DLL die du zeigst funktioniert in der Version 7 nicht.
Der DLL Experte von Delphi baut die aDatei gleich ein bisschen anders auf. Für Welche Version ist das gemacht?
Du könntest die DLL auch mit den restlichen Quelltext versehen, denn wenn man ds macht was im Tutorial steht, dann bekommt man Probleme mit der Funktion OneFunction,...

MfG Master
.: Meine Homepage :.
http://www.micha-hertel.de
  Mit Zitat antworten Zitat
Palando

Registriert seit: 5. Mai 2005
72 Beiträge
 
#8

Re: Windows Messages an andere Programme abfangen

  Alt 22. Jul 2005, 21:08
Zitat von Olli:
@Masterof: Es gibt bereits eine aktuellere Version dieses meines Tutorials hier. Das auf DS ist nicht aktuell, da man dort auf eine Finalversion meines Tuts warten möchte.
Ich werds mir mal durchlesen, danke für den Link
Und fürs schreiben natürlich


@Masterof: Kenne ich schon das Tutorial, anhand von dem hab ich meine Codeversuche gemacht. Mal schaun obs mit Ollis Tut jetzt was wird... Ich werds heute wohl nichtmehr angehen, morgen aber
Markus
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#9

Re: Windows Messages an andere Programme abfangen

  Alt 22. Jul 2005, 21:09
Zitat von Masterof:
Also ich habe mir das Tutorial angeschaut, und die erste DLL die du zeigst funktioniert in der Version 7 nicht.
Der DLL Experte von Delphi baut die aDatei gleich ein bisschen anders auf. Für Welche Version ist das gemacht?
Du könntest die DLL auch mit den restlichen Quelltext versehen, denn wenn man ds macht was im Tutorial steht, dann bekommt man Probleme mit der Funktion OneFunction,...
Könntest du bitte Namen nennen (Name der Unit, Name der DLL) ... und ich hoffe du sprichst vom aktuellsten?

Ich habe leider kein Delphi 7. Konzipiert war es für Delphi 3-5 wo es definitiv läuft. Mangels D7 kann ich es schlecht testen. Werde mir die PE aber mal saugen und installieren.
  Mit Zitat antworten Zitat
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Windows Messages an andere Programme abfangen

  Alt 22. Jul 2005, 21:14
Hallo!

Also, ich habe das von deiner Website im PDF genommen und wollte es mir durchlesen.
Gleich die erste DLL "SampleDLL" Du hast lediglich die Namen der Funktion angegeben, die du exportieren willst.
Um das nachvollziehen zu können braucht man aber den kompletten Quelltext der DLL.
Ich hoffe wir reden nicht aneinander vorbei.
Im PDF auf der Seite 6.

Master
.: Meine Homepage :.
http://www.micha-hertel.de
  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 16:12 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