Skip to content

sprechende Benennung

Für ein Projekt auf Arbeit habe ich mich kürzlich mal etwas mit der Windows-API beschäftigen dürfen. Die Aufgabe sah so aus, dass ein Programmfenster eines anderen Programmes geschlossen werden sollte.

Nun gibt es in der User32.dll eine Funktion mit dem einladenden Namen CloseWindow. Also denke ich mir so, dass die wohl dafür gedacht ist, wenn man ein Fenster schließen will. Wäre ja irgendwie logisch. Aber nein, wenn man der CloseWindow-Funktion ein Fensterhandle reicht, dann minimiert die das Fenster nur. Naja, irgendwie so ganz offen ist das Fenster zwar nicht, aber naja. Also habe ich weitergesucht, und die martialisch klingende Funktion DestroyWindow gefunden. Wenn man mal von der Assoziation absieht, dass mein Programm dann mit einem Raketenwerfer das 'feindliche' Fenster bearbeitet, könnte man ja annehmen, dass nach der Zerstörung eines Fensters eben dieses weg wäre. Also habe ich auch das getestet, aber ohne jeglichen Erfolg. Das zu Testzwecken verwendete Notepad hat sich von den Angriffen gänzlich unbeeindruckt gezeigt.

Nach weiterer Recherche bin ich dann über ein Codebeispiel gestolpert, bei dem dem betreffenden Fenster eine Meldung WM_CLOSE geschickt wird, wonach sich das Fenster dann üblicherweise schließt. In der Dokumentation, die ich mir dann zu dem Thema noch verabreicht habe, stand dann noch, dass die Standardimplementation der Nachrichtenbehandlung nach Erhalt der WM_CLOSE-Meldung einen DestroyWindow-Aufruf absetzen würde. Hmm, okay, dann darf sich ein Programm wohl nur selbst wegbomben. Naja, solange es funktioniert.

Der testweise behandelte Editor hat sich dann auch brav beendet, und im Fall von ungespeicherten Eingaben den Nutzer mit einer Rückfrage auf den Umstand hingewiesen. Okay, works as planned. Dass sich hingegen ein bei weiteren Tests herangezogenes Explorerfenster gegenüber dem Schließungswunsch völlig verschließt, verwundert dann schon. Aber vielleicht wäre dort ja ein CloseWindow angemessener?

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

HTML-Tags werden in ihre Entities umgewandelt.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

BBCode-Formatierung erlaubt
Formular-Optionen
tweetbackcheck