So funktionieren Windows – in Windows !

Windows Windows

Der Name Windows symbolisiert das Fenster in eine virtuelle Welt. Fenster besitzen in Windows eine enorm wichtige Rolle !

Fenster sind Windows Grundlage !

Hello World !

Das bekannte, klassische Windows Fenster. Ein Window.

Mit den typischen Bedienelementen und dem eindeutigen Look & Feel. D.h.: das Aussehen und die Handhabung. Sofort lässt sich daran erkennen, auf welcher Windows Version wir uns befinden. Hier klar ersichtlich: Windows 7.

   Das Look & Feel gibt uns Windows grundlegend vor. Ebenso die basis Bedienelemente, die so gennanten Controls. Text, Button, Listbox, … sind einige davon.

Die Hauptaufgabe eines Fensters ist die Interaktion:

  • Fenster Eingaben verarbeiten
    z.B.: Tastatureingabe, Maus Bewegung, Maustasten, Touchpad, …
  • Ausgaben ins Fenster
    Steuerelement zeichnen, Text ausgeben, Fenster verschieben, …

  Windows ist ein Ereignis gesteuertes System ( event driven system ).
Wir müssen ( und sollen ! ) uns nicht damit beschäftigen, was der Benutzer gerade in und mit unserem Fenster anstellt. Windows benachrichtigt uns wenn etwas interessantes passiert.

Wir können derweilen gemütlich mit unserer Arbeit weitermachen, bis uns Windows aufschreckt.

Windows Messages

Kommuniziert wird mittels Messages. Das ist die grundlegende Kommunikation am Desktop. Windows sendet Messages an die einzelnen Fenster. Und die Fenster senden Messages an sich selbst oder an die Fenster anderer Programme.

Communication

  • Linke Maustaste wurde gedrückt,
  • Taste ‚a‘ wurde losgelassen,
  • Timer ist abgelaufen,
  • Fenster muss neu gezeichnet werden,
  • Umgebung wurde verändert,
  • Gerät wurde angeschlossen,
  • Programm beenden,

Bei jedem dieser Ereignisse schickt das System Nachrichten an die einzelnen Fenster, oder an alle Fenster gemeinsam.

Eingabe Verarbeitung

Mouse Message

Beutzer bewegt die Maus. Was passiert ?

Das x / y Bewegungsdelta wird periodisch durch den Maus Hardware Treiber z.B.: mittels Interrupt ermittelt und umgerechnet. Diese Daten werden vom Treiber in eine Message verpackt und in der globalen System Queue abgelegt.

System Message Queue

Windows Messages

Ein globaler ( Stappel ) Speicher, der alle globalen Nachrichten temporär buffert.

Das System nimmt dann eine Nachricht nach der anderen aus der System Queue, bestimmt das Zielfenster und schickt die Nachricht an das betreffende Fenster.

Queued und None queued Messages

none - queue

Windows schickt die Messages auf zwei unterschiedliche Wege an die einzelnen Fenster.

  • Gemütlich an die ( Thread ) Message Queue ( = queued )
  • Direkt an die Windows Funktion des Fensters ( = none queued )

Thread Message Queue

Jeder GUI Thread besitzt eine eigene Thread Message Queue. An diese Queue schickt Windows die einzelnen Nachrichten aus der System Message Queue. Hier landen vorallem Eingabe Ereignisse wie Maus und Tastatur.

Die Applikation sorgt selbst für die Weiterverarbeitung der Nachrichten.

Message Loop

Windows MessageLoop

Die Message Loop nimmt die gesendeten Nachrichten aus der Message Queue. „Interessante“ Nachrichten werden gleich hier an Ort und Stelle verarbeitet. Die anderen erhält Windows wieder postwendend zurück.

Die Nachrichten müssen aus der Message Queue genommen werden, sonst kann diese überlaufen und das Programm reagiert nicht mehr. Zwar hat die Applikation etwas Zeit, aber nach einigen Sekunden nörgelt das System und gibt die Meldung „Keine Rückmeldung“ in der Titelleiste aus.

Windows Prozedur

Windows WinProc

Der direkte Weg.

Manche Nachrichten sendet das System direkt an die Windows Prozedur. Dies betrifft vor allem „Kommandos“ der API Funktionen wie: Fenster aktivieren, Fokus setzen, Cursor ändern, …

Zudem gelangen hier auch die Nachrichten, die wir in der Message Loop wieder an Windows retourniert haben.

Die „interessanten“ Nachrichten werden bearbeitet, die anderen wieder an das System abgegeben. Windows führt mit diesen dann ein Standard Prozedere durch.

Weitreichende Möglichkeiten

Durch diese flexible Architektur eröffnen sich auch sehr interessante Möglichkeiten andere Fenster zu manipulieren:

  • Fokus setzen
  • Fenster verkleinern, vergrössen
  • Fenster unsichtbar schalten
  • Buttons und Menus aktivieren / deaktivieren

 Praxis ?

Fenster im Eigenbau

Windows Fenster Spionage mit Spy++

Immer auf dem Laufenden !
Liken Sie uns jetzt auf Facebook
Keinen Artikel verpassen !
Folgen Sie uns jetzt auf Twitter

Fanden Sie den Artikel interessant ? Dann empfehlen Sie ihn doch gleich weiter !

Sagen Sie uns Ihre Meinung !

Happy new year 2016 !
Happy New Year 2016 !
Google Tips
Die besten Google Tipps, Hacks, Games und Easter Eggs !
Registry Quiz
Sind Sie ein Windows Registry Experte ?
Coder Myths
14 hartnäckige Programmier(er) Mythen und Irrtümer
Password Sünden / Password Sins
13 gefährliche Passwort Sünden
Passwort Generator / password generator
Online Passwort Generator
Password Hacker
Passwort Hacker – Wie kommen Hacker an Ihre Passwörter ?
Leet
Leet – die Hacker Sprache
Spy++ Title
Windows Fenster Spionage mit Spy++
Registry Quiz
Sind Sie ein Windows Registry Experte ?
Title ProcMon
Prozess Monitor – Programmen auf die Finger geschaut !
Windows Construct
Fenster im Eigenbau !
Coder Myths
14 hartnäckige Programmier(er) Mythen und Irrtümer
Windows Construct
Fenster im Eigenbau !
Debug Messages
Programmierer Geflüster abhorchen
Registry timestamp / Registry Zeitstempel
Registry Keys haben einen Zeitstempel ?!
Title ProcMon
Prozess Monitor – Programmen auf die Finger geschaut !
WMI Code Creator
WMI Code Creator – WMI ganz komfortabel
Environment Variables / Umgebungs Variablen
Windows konfigurieren mit Umgebungsvariablen
Passwort Generator / password generator
Online Passwort Generator