Autor Beitrag
crncpz
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 59

WIN 2000, WIN XP Pro
Delphi 6
BeitragVerfasst: Fr 29.05.09 11:45 
hallo

ich probiere gerade ein Fenster eines anderen Programmes im Vordergrund anzeigen zu lassen.

ausblenden Delphi-Quelltext
1:
windows.showwindow(handle,sw_normal);					

diese Lösung hat aber eine unschöne Eigenschaft, wenn man ein Fenster was maximiert ist, minimiert und dann mit showwindow aufruft, dann wird das Fenster nicht wie zuvor maximiert dargestellt.

ich habe auch versucht das Fenster aktiv zu setzen und mit Enter anzuzeigen, dies klappt aber auch nicht immer.
ausblenden Delphi-Quelltext
1:
2:
windows.SetForegroundWindow(handle);
Sndkey32.SendKeys('{ENTER}', false);

gibt es eine Möglichkeit dieses Problem zu umgehen? Kann man vielleicht abfragen wie der Windowstate des fremden Fensters ist um dies dann beim anzeigen zu berücksichtigen?
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Fr 29.05.09 14:37 
ausblenden Delphi-Quelltext
1:
windows.showwindow(f.handle,sw_restore);					


Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt
crncpz Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 59

WIN 2000, WIN XP Pro
Delphi 6
BeitragVerfasst: Fr 29.05.09 16:12 
danke das klappt wunderbar, da hätte man vielleicht auch selbst drauf kommen können :P

habe auch gerade eine Antwort auf den Rest meiner Frage gefunden:
mit IsIconic lässt sich prüfen ob ein Fenster minimiert ist und mit IsZoomed ob es maximiert ist, alle anderen sollten dann ja den WindowState normal haben.