Thema: Delphi Frage zu SetWindowLong

Einzelnen Beitrag anzeigen

mw19
(Gast)

n/a Beiträge
 
#3

Re: Frage zu SetWindowLong

  Alt 7. Jan 2010, 14:12
Danke sx2008 für den Hinweis mit dem "verodert"!

Dein Tipp klappt zwar nicht, aber ich bin damit trotzdem weiter gekommen. Leider aber noch nicht ganz am Ziel.

Maximieren der Fremdanwendung:
Delphi-Quellcode:
WStyle := GetWindowLong(hTaskbar, GWL_EXSTYLE);
SetWindowPos(hTaskBar, HWND_BOTTOM,0,0,0,0, SWP_NOACTIVATE
                                         or SWP_NOMOVE
                                         or SWP_NOSIZE
                                         or SWP_NOZORDER
                                         or SWP_HIDEWINDOW);
ShowWindow(hTaskBar, SW_SHOWNOACTIVATE);
Minimieren der Fremdanwendung:
Delphi-Quellcode:
SetWindowLong(hTaskBar, GWL_EXSTYLE, WStyle);
ShowWindow(hTaskBar, SW_SHOWMINNOACTIVE);
Rein von der Funktionalität her klappt alles wie gewünscht, allerdings bekomme ich jetzt ein unschönes "Flackern" der Fremdanwendung innerhalb der Taskleiste. Anstatt das Programm innerhalb der Taskleiste einfach zu "irgnorieren" scheint Windows es jetzt aus- und direkt wieder einzublenden. Durch das SWP_NOACTIVATE dachte ich dies verhindern zu können. Ausgeblendet wird es wohl durch SWP_HIDEWINDOW. Auf SWP_HIDEWINDOW kann ich aber nicht verzichten, weil die Fremdanwendung sonst bei jedem zweiten Maximieren nicht im Hintergrund, sondern im Vordergrund geöffnet wird und hierdurch auch der Focus auf die Fremdanwendung gesetzt wird.

Hat noch jemand eine Idee wie das "Flacken" in der Taskleiste unterbunden werden kann?

Vielen Dank!
  Mit Zitat antworten Zitat