Canvas not supported
Canvas not supported
Suchen
Bookmark
Canvas not supported
Shine Effekt
Direkt zum Seiteninhalt

Hauptmenü:

Fenster Spionage mit SPY++

 

Autor:

Oscar Kohler

Version:

0.11

Level:

Einfach

Sprache:

---


 
Haftungsausschluss / Disclaimer
Kontakt / Contact
Drucken / Print


Wollen wir das Verhalten anderer Windows Fenster auf dem Desktop beeinflussen, Fehlverhalten analysieren oder einfach detailierte Informationen über ein Fenster erhalten, dann benötigen wir Werkzeuge. Eines dieser Werkzeuge nennt sich Spy++ und wird mit dem
Visual Studio mitgeliefert.
Spy++ wird als Visual Studio Werkzeug über Extras->Spy++ aufgerufen.

Auffrischung Fenster API


Wer sich nicht mehr so genau an die Technik hinter den Fenstern erinnert, kann sein Gedächtnis hier etwas auffrischen:

Fenster Tutorial

Wozu kann man nun Spy++ gebrauchen ?

Wer mit Fenstern arbeitet benötigt oft folgende Informationen:

  • Fenster-Klasse,

  • Fenster-Titel,

  • Fenster-Handle,

  • Nachrichtenfluss


Und um genau diese Informationen herauszulösen leistet Spy++ hervorragende Arbeit.
Spy++ liefert uns die Fensterinformation aufgrund verschiedener Kriterien wie Fensterliste, Processe, Threads und Fenstersuche. Zudem bietet es sogar die Möglichkeit, die Geschwätzigkeit der Fenster mitzuhorchen.

Für die folgenden Beispiele nehmen wir den beliebten Windows Taschenrechner zur Hand.

Spy++ Fensterliste


Die Ansicht anhand der Fensterliste ist die Starteinstellung. Hier werden alle Fenster des Desktops aufgelistet, und aufgrund der Tatsache, dass auch Steuerelemente Fenster darstellen, verliert man recht schnell den Überblick. Die Fenster Liste liefert jedoch einen sehr interessanten Einblick über die verschiedenen Klassen.

Spy++ Fensterliste


Spy++ Prozess Ansicht


Die nächste Ansicht listet die Prozesse, sowie die zugehörigen Threads und deren Fenster. Da sich die laufenden Prozesse in der Regel im Rahmen halten und der Prozessname meist recht schnell ermittelt werden kann, findet sich das Fenster in dieser Liste recht flott.

Spy++ Prozess Ansicht


Die Ansicht nach Threads überspringen wir mal, da sie erstens nicht besonders übersichtlich ist und zweitens die Threads auch in der Prozessliste ersichtlich sind.

Spy++ Fenster Suche


Dies ist die komfortabelste Ansicht und benötigt am wenigsten Aufwand Informationen von einem Fenster zu erhalten.

Spy++ Fenster Suche


Der Ablauf ist sehr intuitiv. Man schnappt sich einfach mit der Maus das Fadenkreuz und bewegt es auf ein interessantes Fenster. Sofort erhalten wir die gewünschten Fenster Informationen.

Hier ist sehr gut ersichtlich, dass Steuerelemente auch "nur" Fenster darstellen. Wenn wir beispielsweise den Cursor auf die Taste 5 im Taschenrechner bewegen, erhalten wir wiederum Fenster Informationen.

Spy++ Fenster Suche


Ziel mit Spy++ soweit erreicht ...


Bei allen Ansichten erhalten wir die gesuchten Informationen:

  • Fenster Handle,

  • Fenster Titel,

  • Fenster Klasse


Allerdings erhalten wir bei der Fenster Suche zusätzlich ...

  • Koordinaten,

  • Fenster Stil


... gratis obendrauf.

Fremdsprachen ...


Einiges muss immer beachtet werden !

Nicht alle Fenster liefern brauchbare Informationen. Wird weder Titel noch Klasse angezeigt, wird es schwierig das Fenster anzusprechen. Manchmal helfen dann noch Koordinaten, aber abenteuerlich wird es dann allemal ...

Zudem muss man daran denken, dass Gui's die gethemed (skinned) wurden, oftmals eine eigene Gui Engine verwenden. Die Steuerelemente werden dann nicht mithilfe von Chieldwindows dargestellt, sondern von "Hand" geblittet. Spy++ kann dann natürlich nichts anzeigen.

Zuletzt darf man die Lokalisierung nicht auser Acht lassen. Bei Multilanguage Systemen, oder wenn das Programm internationalisiert wurde, ändert sich auch meist der Fenstertitel. Der Windows Taschenrechner heisst in den meissten anderen Ländern nicht "Rechner". Daher muss man dann immer mehrere Titel berücksichtigen. Bei der Klasse gibt es da weniger Probleme. Klassen werden wohl eher nur in seltenen Fällen international registriert.

Fenster Geschwätz


Beim Artikel über die Techniken die hinter den Fenstern stecken ...

Fenster Tutorial

... kristallisierte sich beim Thema Messages schnell heraus, dass Fenster doch recht geschwätzig sein können. Duzende verschiedenartiger Meldungen werden ständig zwischen Windows und den Fenstern versendet.
Sobald wir ein Fenster mit der Maus auch nur berühren beginnt schon das Feuerwerk ...

Um Fensterprogramme effizient zu debuggen, oder auch um das Technische Verständnis für Fenster zu fördern, wäre es sehr hilfreich, wenn wir die verschiedenen Nachrichten heimlich belauschen könnten.

Auch hierbei ist SPY++ eine grosse Hilfe !

Wir wählen hierfür das Menu: "Meldungen protokollieren"

Nun erhalten wir ein Fenster ähnlich der Fenstersuche, bei dem wir ein Fenster gezielt anwählen können. Zudem lassen sich hier auch noch zusätzliche Fenster auswählen.

Spy++ Meldungen protokollieren


Nachdem wir uns schlussendlich für ein Fenster entschieden haben, konfigurieren wir, welche Messages wir abhören möchten. Um das Feuerwerk etwas im Ramen zu halten, habe ich im Filter nur Messages aktiviert, die im Zusammenhang mit der Grössenänderung des Fensters stehen.

Für dieses Beispiel habe ich diesmal das Windows Notepad verwendet, weil sich der Windows Rechner schwer in der Grösse ändern lässt.

Spy++ Optionen


Sobald wir die Grösse des Fensters ändern, feuern Messages die mitteilen, welche Seite und Grösse geändert wurde.

Spy++ Meldungen


Mit SPY++ steigt die Transparenz der Techniken, die hinter den Fenstern stecken wirklich enorm !


 
Kein Kommentar
 
Letzte Änderung: 03.02.2015
button Canvas not supported button
Zurück zum Seiteninhalt | Zurück zum Hauptmenü