Entwickler-Ecke

Windows API - Windows: Messages


mimi - Mi 12.03.03 19:05
Titel: Windows: Messages
Hallo,
ich möchte alle windows messages abfagen die windows sendet(nicht nur an mein programm, sondern überall) wie kann ich das machen ?


torstenheinze - Mi 12.03.03 19:26

wardas nich was mit hook?... such mal nachhook


mimi - Mi 12.03.03 19:31

könntet ihr nicht ein paar beispiele machen ???


Delete - Mi 12.03.03 23:06

Jupp, das geht mit einem Hook. Ein Beispiel? das sind nicht einach zwei, drei Zeilen Code das ist eine eigenständige Anwendung mit einer DLL. Du solltest also Vorkenntnisse in der DLL-Programmierung haben und auch ein tieferes Verständnis für die Win32-API (also wie das alles zusammemnhängt und funktioniert), ansonsten wird das nicht klappen.

Aber da du unbedingt ein Beispiel haben willst, kuck dir den LuckieSpy von meiner HP an.


mimi - Do 13.03.03 00:26

ich kann mir wirklich nicht vorstellen das es so schwer ist, alle Windows Nachrichten abzufagen, die nicht an dein Programm gerichtet sind, muss man dafür wirklich gleich eine Dll schreiben ???
warum ?


Delete - Do 13.03.03 00:33

Weil du in den Prozess rein mußt an den die Nachrichten gehen. Und das geht nur, wenn du eine DLL in alle Prozesse injezierst.


Böser Borstel - Do 13.03.03 13:16
Titel: Registry
Ich weiß 100pro bei Windows 2000 und höher schreibt Windows einen Fehlerbericht, dieser wird über die Registry gesteuert, wie das bei früherer Windows Versionen war weiß ich nicht. Nun kann man ein Programm schreiben das ständig die Registry überprüft, was ständig laufen muß (Autostart) und dann die Fehlermeldung blockt bzw. eine andere Ausgibt.
Genau das habe ich schon mal versucht, habe es aber nie hin bekommen!


mimi - Do 13.03.03 15:13

also die Nachrichten die an deinem Programm gehen, kann man ja einfach abfagen....
Könntes du mir mal so eine DLL schreiben Luckie ?
weil ich kenne mich nicht in der DLL programmierung aus, und ich kenne mich auch nicht mit WinApi aus;)


toms - Do 13.03.03 15:24

Zitat:
ich möchte alle windows messages abfagen die windows sendet


Warum möchtest du die den abfangen?
Der API Monitor tuts doch auch.


mimi - Do 13.03.03 15:56

welche API Monitor ?
HÄ?
das hat mehrer gründe....


Böser Borstel - Do 13.03.03 16:04
Titel: Interesse
Das Interessiert mich jetzt aber auch


DeCodeGuru - Do 13.03.03 16:11

sucht mal in google nach Api Monitor. Da findet ihr genügend Infos.


Böser Borstel - Do 13.03.03 16:16
Titel: danke
danke für deinen tip


mimi - Do 13.03.03 16:34

ich werde mal suchen...


DeCodeGuru - Do 13.03.03 16:41

guckst du hier [http://www.rohitab.com/apimonitor/].


mimi - Do 13.03.03 16:48

und wie geht sowas ?


Delete - Do 13.03.03 19:36
Titel: Re: Registry
Böser Borstel hat folgendes geschrieben:
Ich weiß 100pro bei Windows 2000 und höher schreibt Windows einen Fehlerbericht, dieser wird über die Registry gesteuert, wie das bei früherer Windows Versionen war weiß ich nicht. Nun kann man ein Programm schreiben das ständig die Registry überprüft, was ständig laufen muß (Autostart) und dann die Fehlermeldung blockt bzw. eine andere Ausgibt.
Genau das habe ich schon mal versucht, habe es aber nie hin bekommen!


Und was hat das mit dem Thema zu tun?


Delete - Do 13.03.03 19:39

mimi hat folgendes geschrieben:

Könntes du mir mal so eine DLL schreiben Luckie ?

Sagen wir 20 Euro die Stunde.


mimi - Do 13.03.03 20:49

meinst du so aufwendig ist das ?
kann ich mir nicht vorstellen....


Delete - Do 13.03.03 20:53

Frag mal einen Handwerker nach seinen Stundenlohn. :wink:

Und wenn du meinst, dass es nicht so aufwendig ist, dann nimm dir meinen LuckieSpy (zu finden auf meiner Seite) als Vorlage und mach es selber.


alex_id - Do 13.03.03 22:04

Hi

Also ich kann Luckie nur Recht geben :!: :!: :!:
Ich hatte mal ein ähnliches Problem, nur leider ist mir die richtige Lösung nicht gelungen da man um die Hooks nicht drum herum kommt und ich mich noch nicht so mit Hooks auskenne :nixweiss: , hab ich da erst mal abgebrochen :!:
Aber ich werde mich auf alle Fälle mit Hooks noch beschäftigen :mahn:

Alex


mimi - Do 13.03.03 22:09

OK!


Böser Borstel - Di 18.03.03 15:44
Titel: an Luckie
es hat damit was zu tun, das ich gerne alle fehlermeldungen von windows abfangen würde und anstelle meine eigene senden. deshalb der kleine tip von mir.
wie mache ich das also?


mimi - Di 18.03.03 16:05

Ich glaube einge fehlermeldungen zu machen ist nicht so schwer wie alle Windows Nachrichten abzufagen;)


Böser Borstel - Di 18.03.03 16:07
Titel: tip
ich weiß aber nicht wie ich das machen soll.
ich freue mich über jeden tip!

danke schon im voraus!


mimi - Di 18.03.03 16:23

Zitat:

ich freue mich über jeden tip!

ich auch :lol:


Böser Borstel - Do 20.03.03 14:26
Titel: Hi
Luckie kann ganz schon frech werden.
Ich weiß ja er hat ganz schon was drauf, aber trotzdem sollten wir versuchen miteinander auszukommen und uns gegenseitig zu helfen.

Schließlich wäscht eine Hand die andere!


Delete - Do 20.03.03 14:34
Titel: Re: Hi
Böser Borstel hat folgendes geschrieben:
Luckie kann ganz schon frech werden.

Wo bin ich denn bitte sehr frech? :shock:


Böser Borstel - Do 20.03.03 14:41
Titel: Böser Borstel
Zitat:
mimi hat folgendes geschrieben:

Könntes du mir mal so eine DLL schreiben Luckie ?


Sagen wir 20 Euro die Stunde.



Zitat:
Frag mal einen Handwerker nach seinen Stundenlohn.

Und wenn du meinst, dass es nicht so aufwendig ist, dann nimm dir meinen LuckieSpy (zu finden auf meiner Seite) als Vorlage und mach es selber.


Delete - Do 20.03.03 15:01

Kleine Gefälligkeiten (Code-Schnipsel, kleinere Progrämmchen) sind OK. Aber die DLL wäre das gesamte Projekt gewesen und noch dazu nicht ganz trivial.


Motzi - Do 20.03.03 15:10
Titel: Re: Böser Borstel
Böser Borstel hat folgendes geschrieben:
Zitat:
mimi hat folgendes geschrieben:

Könntes du mir mal so eine DLL schreiben Luckie ?


Sagen wir 20 Euro die Stunde.


Zitat:
Frag mal einen Handwerker nach seinen Stundenlohn.

Und wenn du meinst, dass es nicht so aufwendig ist, dann nimm dir meinen LuckieSpy (zu finden auf meiner Seite) als Vorlage und mach es selber.

Mag sein, dass das nicht sehr nett klingt, aber wo er recht hat hat er recht. Auftragsprogrammierung kostet eben und wenn man sich das nicht leisten will muss man sich eben selbst dran setzen. Und es ist ja auch nicht so, dass es zu diesem Thema keine Literatur gibt! Assarbad hat ein Tutorial über Hooks geschrieben und Luckie hat auf seinen LuckieSpy verwiesen, der ebenfalls die Implementierung von Hooks demonstriert.
Ansonsten werden konkrete Fragen zu konkreten Implementierungs-Problemen schließlich jederzeit gerne beantwortet.

Und irgendwie hab ich das Gefühl, dass sich einige Leute einige Problemlösungen einfacher vorstellen als sie eigentlich sind... :roll: :wink:

Zitat:
Ich glaube einge fehlermeldungen zu machen ist nicht so schwer wie alle Windows Nachrichten abzufagen;)

Nicht unbedingt...

@Böser Borstel:
wenn das mit den Fehlermeldungen nur deine eigene Anwendung betrifft dann schau mal auf http://www.madshi.net und lad dir madException runter. Ist zwar ohne Code, aber es ist ungefähr beschrieben wie sie funktioniert. Falls du es systemglobal machen willst kann ich dir nur viel Glück wünschen. Mir fallt momentan keine vernünftige Möglichkeit ein das zu realisieren (höchstens API-Hooking).


mimi - Do 20.03.03 17:47

dann gibt doch mal nen tip wie das gehen soll ???


Motzi - Do 20.03.03 20:01

Schonmal einen Blick in das Hook-Tutorial von Assarbad geworfen?
http://www.assarbad.org/stuff/tutorials/hooks/index.html

Und dann kannst du dir hier noch den LuckieSpy von Luckie runterladen:
http://www.luckie-online.de/cgi-bin/load.cgi?downloads/luckiespysfx.exe

Schau dir das mal an... und wenn du dann noch Probleme hast kannst du dich immer noch melden.


mimi - Do 20.03.03 20:09

der erste link geht leider nicht :(
und der 2 hilft mir auch nicht weiter :(
aber danke für deine hilfe :D
warum muss das eigentlich gleich eine DLL sein ???


Motzi - Do 20.03.03 20:18

mimi hat folgendes geschrieben:
der erste link geht leider nicht :(

Hä? Also bei mir funzt der problemlos...

Warum das eine DLL sein muss... das ganze ist schon sehr systemnah. Du willst alle Nachrichten abfangen, also auch die für Fenster von andren Prozessen. Allerdings hat jeder Prozess einen eigenen Adressraum. Daher muss Windows deine Hook-Dll in jeden Prozessraum laden, damit diese Dll auf die Nachrichten zugreifen kann, die eigentlich für diesen Prozess gedacht waren.
Hoffe die Problematik jetzt ein bisschen deutlicher dargestellt zu haben...


mimi - Do 20.03.03 21:06

achso.
ist der erst linke englisch ?
Wenn ja nützt er mir leider sowieso nichts;)

und aus dem 2. werde ich nicht schlau :(


Delete - Do 20.03.03 21:24

Der erste Link ist deutsch und der zweite ist mit vollständigen Source Code. Wenn du damit nicht klar kommst, ist das ein Zeichen, dass du noch nicht soweit bist.


mimi - Do 20.03.03 21:48

komisch jetzt geht der 1. Link. Naja ich werde mir es mal durchlesen und melde mich dann wieder, OK?