AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Z-Order Verändern (Fremde Anwendung!)
Thema durchsuchen
Ansicht
Themen-Optionen

Z-Order Verändern (Fremde Anwendung!)

Ein Thema von Billi Berserker · begonnen am 7. Aug 2007 · letzter Beitrag vom 7. Aug 2007
Antwort Antwort
Billi Berserker
(Gast)

n/a Beiträge
 
#1

Z-Order Verändern (Fremde Anwendung!)

  Alt 7. Aug 2007, 11:47
Ich arbeite gerade an ein paar funktionen mit denen ich alle sichtbaren Fenster beliebig auf dem Bildschirm hin und her schieben kann.
Dafür brauche ich die Möglichkeit Fenster einer anderen Anwendung in der Z-Order nach hinten und vorne zu verschieben.
Das Problem ist natürlich das das mit SetWindowPos() nicht funktioniert das die ganzen Fenster aus anderen Anwendungen sind.

Eine beliebige Anwendung in den Fordergrund bringen läßt sich über Umwege mit der ForceForegroundWindow() funktion realisieren. (welche hier im Forum schon oft genug gepostet wurde). Diese Funktion benutzt im Endeffekt die BringWindowToFront() funktion der WinAPI. Das Problem ist jedoch das ich in der WinAPI keine funktion finden konnte um eine Anwendung in den Hintergrund zu schicken.Modifizieren der ForceForegroundWindow() funktion (SetWindowPos() anstatt BringWindowToFront()) hat ebenfalls nicht funktioniert.

Bin jetzt gerade etwas ratlos und hab keine weiteren Ideen wie ich es realisieren soll das ein beliebiges Fenster komplett in den Hintergrund geschickt wird.
Informationen dazu findet man leider relativ schlecht da es normalerweise nur darum geht eine Anwendung in den Fordergrund zu bringen...
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Z-Order Verändern (Fremde Anwendung!)

  Alt 7. Aug 2007, 12:29
Hi,

wenn du dir das Handle des femden Fensters besorgst, kannst du mit   SetWindowPos((*HWND*), HWND_BOTTOM, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); doch das Fenster in den Hintergrund bringen.

Oder mit   SetWindowPos((*Fenster1Handle*), (*Fenster2Handle*), 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); Ein Fenster vor oder hinter ein bestimmtes Fenster setzen.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Billi Berserker
(Gast)

n/a Beiträge
 
#3

Re: Z-Order Verändern (Fremde Anwendung!)

  Alt 7. Aug 2007, 12:49
argh verdammt, das einzige was gefehlt hat war der SWP_NOACTIVATE Flag... damit gehts auch mit SetWindowPos...
danke

kann ich mit den ganzen ForceForegroundWindow kram auch sparen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz