Hallo ZFX,
ich bin hier langsam mit meinem Latein am Ende!!
Es gibt eine Anwendung (Vollbild) die stehts im Vordergrund ist.
Ich möchte jetzt aus dieser Anwendung heraus, durch Betätigen eines Buttons, eine andere Anwendung startenen und sie _vor_ diese erste Anwendung bringen.
Quasie das Fenster der zweiten Anwendung soll vor dem Fenster der ersten Anwendung positioniert werden.
Ich dachte das funktioniert einfach mit
SetWindowPos(wndH, HWND_TOPMOST, x, y, w, h, SWP_SHOWWINDOW);
Wobei wndH das Handle des zweiten Fensters ist.
Funktioniert leider nicht.
Ich habe auch mit SetForegroundWindow unc Co herumexperimentiert....ohne erfolg.
Was mich jedoch wundert ist, dass wenn diese erste Anwendung im Vollbildmodus geöffnet ist und ich durch Tastenkomination den Windowsexplorer aufrufe, er (Windowsexplorer) auch _vor_ diesem Fenster dargestellt wird...
Hat da vlt jemand eine Idee was ich tun muß?
Gruß
(gelöst)[WinApi] Fenster in den Vordergrund bringen
(gelöst)[WinApi] Fenster in den Vordergrund bringen
Zuletzt geändert von joggel am 06.09.2016, 11:27, insgesamt 1-mal geändert.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [WinApi] Fenster in den Vordergrund bringen
Ist die Vollbildanwendung vielleicht ebenfalls TOPMOST?
Über den Explorer nicht wundern – der ist sowieso die ganze Zeit vorn damit die Task-Leiste nicht verdeckt wird. (Wird auf dem Monitor mit der Task-Leiste ein Fenster erzeugt, das den ganzen Monitor bedeckt, geht sie selbstständig aus dem Weg, ist aber nicht im Hintergrund. Siehe The Old New Thing – How do I cover the taskbar with a fullscreen window?).
Über den Explorer nicht wundern – der ist sowieso die ganze Zeit vorn damit die Task-Leiste nicht verdeckt wird. (Wird auf dem Monitor mit der Task-Leiste ein Fenster erzeugt, das den ganzen Monitor bedeckt, geht sie selbstständig aus dem Weg, ist aber nicht im Hintergrund. Siehe The Old New Thing – How do I cover the taskbar with a fullscreen window?).
Re: [WinApi] Fenster in den Vordergrund bringen
Moin Krishty,
ja, die Anwendung scheint auch TOPMOST zu sein.
Ich habe es aber *irgendwie* gerade geschafft, nachdem ich gestern alles möglich ausprobiert habe^^.
Der Code:
So scheint es jetzt zu funktionieren...aber ob das auch die "gängige" Lösoung ist, weiß ich nicht :)
ja, die Anwendung scheint auch TOPMOST zu sein.
Ich habe es aber *irgendwie* gerade geschafft, nachdem ich gestern alles möglich ausprobiert habe^^.
Der Code:
Code: Alles auswählen
HWND wndH = FindWindow(NULL, _T("Fenster-Titel"));
SetForegroundWindow(wndH);
BringWindowToTop(wndH);
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [WinApi] Fenster in den Vordergrund bringen
Hmm; über zwei überlappende Topmost-Fenster scheint die Fachwelt zerstritten zu sein. *Muss* die Vollbildanwendung denn Topmost sein? Wenn sie das nicht wäre, könntest du einfach den Standardweg gehen (SetForegroundWindow() ohne TOPMOST) und hättest, was du brauchst.
Mein Spiel läuft z.B. ohne Topmost im Vollbild. Das ist nur „Pseudo“-Vollbild (kein exklusiver Zugriff auf die GPU), aber mit „echtem“ Vollbild (GPU arbeitet ausschließlich für’s Vollbildfenster, mglw. in anderem Bildmodus) kannst du eh keine anderen Fenster im Vordergrund darstellen (geht wahrscheinlich nur, während Desktop Composition eingeschaltet ist, und schmeißt DXGI-Warnungen).
Mein Spiel läuft z.B. ohne Topmost im Vollbild. Das ist nur „Pseudo“-Vollbild (kein exklusiver Zugriff auf die GPU), aber mit „echtem“ Vollbild (GPU arbeitet ausschließlich für’s Vollbildfenster, mglw. in anderem Bildmodus) kannst du eh keine anderen Fenster im Vordergrund darstellen (geht wahrscheinlich nur, während Desktop Composition eingeschaltet ist, und schmeißt DXGI-Warnungen).
[gelöst] [WinApi] Fenster in den Vordergrund bringen
Aha.
Na ich weiß wie gesagt nicht recht, in welchem modes diese Anwendung läuft und kann es auch nicht beeinflussen. Ist ja ne fremde Software. Die erlaubt einen aber da soetwas wie Scripting zu tun, und Buttons zu konfigurieren mit denen man andere Programme aufruft.
Naja, aber wenigstens funktioniert es jetzt...dank Dir trotzdem!!
Na ich weiß wie gesagt nicht recht, in welchem modes diese Anwendung läuft und kann es auch nicht beeinflussen. Ist ja ne fremde Software. Die erlaubt einen aber da soetwas wie Scripting zu tun, und Buttons zu konfigurieren mit denen man andere Programme aufruft.
Naja, aber wenigstens funktioniert es jetzt...dank Dir trotzdem!!