CWnd* validieren
-
Hallo Gemeinde,
gibt es eine Möglichkeit einen CWnd-Pointer zu validieren? Also zu prüfen ob das Fenster noch existiert ohne eine assertion oder sonst was auszulösen wenn es nicht mehr da sein sollte.
-
IsWindow
-
Danke, ich war mir nicht sicher ob das auch für ganz wilde Pointer funktioniert. Ist aber trotzdem komisch, eigentlich müsste im folgenden Bsp:
int i=10; CWnd* pWnd = (CWnd*) &i; IsWindow(pWnd->m_hWnd);doch der Zugriff auf m_hWnd äusserst kritisch sein und im extremfall bekommt man auch noch ein valides handle, oder denke ich da irgendwie falsch?
-
Oh man was machste da für ne Kacke? Programmier vernünftig.
-
Danke

Nein, ich hab gerade ein Programm fertig mit dem man beliebige Windowsbuttons (von anderen Dialoganwendungen o.ä.) auswählen und fernsteuern kann, dort kann es passieren, das jemand das Ferngesteuerte Fenster schliesst und der gespeicherte pointer keiner mehr ist. Ich habe jetzt aber die Lösung
ich brauche ja gar nicht den Pointer, mir reicht ja auch das handle. Dort könnte man wahrscheinlich auch Pech haben wenn das Handle schon wieder neu vergeben wurde aber naja, da muss ich mir noch eine zusätzliche Prüfung einfallen lassen.Edit: Das Bsp. oben ist nur ein Bsp. und kein verwendeter code, war nur zur Anschauung.
-
connan schrieb:
Danke, ich war mir nicht sicher ob das auch für ganz wilde Pointer funktioniert. Ist aber trotzdem komisch, eigentlich müsste im folgenden Bsp:
int i=10; CWnd* pWnd = (CWnd*) &i; IsWindow(pWnd->m_hWnd);doch der Zugriff auf m_hWnd äusserst kritisch sein und im extremfall bekommt man auch noch ein valides handle, oder denke ich da irgendwie falsch?
Das geht natürlich nicht. Dein CWnd* Objekt muss schon gültig sein. Wenn das Window selbst nicht mehr gültig ist merkt das IsWindow schon.
Allerdings kann Dir niemand sagen ob nicht mittlerweile ein neues Fenster mit gleichem Handle erzeugt wurde
-
Danke Maddin ;), ich werde mal zur Sicherheit noch den WindowText vergleichen (o. bessere Idee?), dann sollte eigentlich die Wahrscheinlichkeit extrem sinken, dass sowas passiert (ist eh schon gering).
p.s. so sieht das halt aus, wenn die Uni Geld spart

p.p.s. ich bin ausserdem froh, dass ich das überhaupt hinbekommen habe, aber dank der Tutorials über hooks etc. hier im Forum gehts jetzt