WinAPI Messages von fremden Fenstern abfangen
-
moin,
ist es mit der WinAPI möglich, Messages von fremden Fenstern abzufangen, also z.B.: Mein Programm läuft, und wenn die Anwendung blabla.exe bewegt wird, soll das meine Anwendung merken. Ein Handle von blabla.exe hab ich.
Keine Ahnung, ob das geht, aber schonmal Danke im Voraus.
tsp
-
Wenn Du nicht sofort reagieren musst, dann könntest Du alle einfach einen Timer setzen und zyklisch prüfen.
Ansonsten müsstest Du einen Message Hook setzen, das impliziert allerdings eine DLL Injection.
-
mmh, das mit dem zyklischen prüfen wär ja erstmal ok. Nur der Ansatz dafür fehlt mir iwie. Wie kann ich manuell überprüfen, ob eine Anwendung z.B. verschoben wird?
tsp
-
Könnte es sein, dass man dazu einfach die alte Position mit der neuen Position vergelicht und daran es feststellt?
-
mmh, klingt iwie auch logisch...
aber wie bekomm ich über ein Handle die Fensterposition bzw. Ausmaße?
-
Get = Englisches Wort für holen, abholen, erhalten
Window = Fenster in der Windows UI
Rect = Abkürzung für rectangle = Rechteck...-> GetWindowRect http://msdn.microsoft.com/en-us/library/ms633519.aspx
Ich glaube Du solltest erstmal einen Grundkurs über die Windows API machen
-
danke
(für'n Grundkurs hab ich einfach keine Zeit... )
-
So, hab ma etwas rumprobiert:
Point p = new Point(Location.X + 20, Location.Y + 20); IntPtr window = WindowFromPoint(p); IntPtr desktop = GetDesktopWindow(); if (window != IntPtr.Zero && window != desktop) { //fremdes Fenster gefunden }
Das Problem ist, das der Desktop ja auch ein Fenster ist, deshalb hab ich versucht, mit GetDesktop das auszuschließen, doch es klappt nicht. Das Handle von GetDesktop ist ein anderes, als das von WindowFromPoint(), selbst wenn an dem Punkt der Desktop ist.
Daher meine Frage: Wie kann ich effektiv den Desktop "rausfiltern" ?
tsp
-
tsp@work schrieb:
(für'n Grundkurs hab ich einfach keine Zeit... )
Dann brauchst Du Dich auch nicht wundern, wenn manch einer (inkl. mir) nicht mehr antwortet...
-
mmh, dann hab ich wohl den Sinn eines Forumsaustausches missverstanden, ich dachte, da wird einem ähnlich einem Team geholfen. Dann kann ich mich auch mitnem Wälzer in die Ecke setzen, und mein eigenes Bier brauen.
Vielen Dank.