Hallo Forum,
ich habe hier ein kleines Problem und verstehe gerade die Welt nicht mehr.
Ich möchte mit meinem Programm ein anderes Programm maximieren und später wieder minimieren. Das Problem bei der Sache ist, dass die fremde Anwender bei der Maximierung nicht in den Vordergrund geholt werden darf. Zudem soll das fremde Programm nicht den Focus bekommen. Der Anwender soll also durch das automatische Maximieren nicht irritiert werden bzw. er soll während dieser Aktion normal weiter arbeiten können, ohne das "seine" Anwendung den Focus verliert.
Ich habe hierzu bereits etwas in der
MSDN gesucht, werde daraus jedoch nicht nicht schlau.
Ich habe es mit:
Delphi-Quellcode:
WStyle := GetWindowLong(hTaskbar, GWL_STYLE);
SetWindowLong(hTaskBar, GWL_EXSTYLE, WS_EX_NOACTIVATE);
ShowWindow(hTaskBar, SW_SHOWNOACTIVATE);
versucht für das Maximieren und für das Minimieren verwende ich:
Delphi-Quellcode:
ShowWindow(hTaskBar, SW_SHOWMINNOACTIVE);
SetWindowLong(hTaskBar, GWL_STYLE, WStyle);
WStyle ist vom Typ Integer.
hTaskBar ist das
Handle der fremden Anwendung.
Das ganze wird Timergesteuert alle paar Sekunden durchlaufen.
Soweit funktioniert es fast, bei jeder zweiten Maximierung wird das fremde Fenster jedoch im Vordergrund maximiert und nicht im Hintergrund. Ich kann mir derzeit nicht erklären, warum er nicht bei jedem Durchlauf das Fenster im Hintergrund maximiert.
Hat von euch jemand eine Ahnung was ich falsch mache bzw. vergesse ich hier irgend etwas?
Vielen Dank für jeden Hinweis!
Gruß,
Michael