Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OSD / Fenster über ein anderen (FullScreen)Programm legen (https://www.delphipraxis.net/47398-osd-fenster-ueber-ein-anderen-fullscreen-programm-legen.html)

Totti 10. Jun 2005 14:28


OSD / Fenster über ein anderen (FullScreen)Programm legen
 
Moin,
ich hab leider absolut keine Ahnung, wonach ich suchen soll, bzw. in welches Forum das hier gehört. Daher beschrieb ich einfach mal, was ic meine und wäre glücklich, wenn ihr mir entweder sagt, wie man sowas allgemeingültig nennt (also womit ich suchen kann) oder bestenfalls halt nen Link zur Lösung gebt ;)


Was ich gerne haben würde ist, dass sich mein Programm (oder zumindest eine Form davon) in den Vordergrund drängt, ohne dass ein bisher im FullSCreen-Mode laufendes programm dadurch minimiert wird.


ich möchte halt ährend dieses FullSCreen-Programm (ein Spiel) ausgeführt wird auf die GUI meines Programs zugreifen können - hoffe, das war verständlich :)

Danke schonmal für eure Hilfe!

Luckie 10. Jun 2005 14:29

Re: OSD / Fenster über ein anderen (FullScreen)Programm lege
 
Suchst du so was: Hier im Forum suchenSetWindowPos HWND_TOPMOST?

Totti 10. Jun 2005 14:54

Re: OSD / Fenster über ein anderen (FullScreen)Programm lege
 
Jain, also ich denke mal, dass dieser Befehl ledglich das Fenster nach Vorne ruft.

Nun ist es aber bei den meisten FullSCreenAnwendungen (wie spielen) so, dass sie sich automatisch minimieren, wenn sie ihren Focus verlieren. Sie laufen ja meist in einer anderen Auflösung. Mir geht es nun darum, irgendwie dem Spiel den Fokus nicht zu nehmen, aber trotzdem meine Form, die ganz vorn zu sehen ist bedienen zu können.

Oder müsste man sich da direkt in die Grafik des Spiels hacken?

Luckie 10. Jun 2005 14:54

Re: OSD / Fenster über ein anderen (FullScreen)Programm lege
 
Nein tut er nicht. Probier es doch erstmal aus, bevor du hier antwortest.

paresy 10. Jun 2005 15:11

Re: OSD / Fenster über ein anderen (FullScreen)Programm lege
 
Zitat:

Zitat von Luckie
Nein tut er nicht. Probier es doch erstmal aus, bevor du hier antwortest.

Du hast seine Frage wahrscheinlich nicht richtig gelesen.

Mit dieser Funktion wird es nicht klappen und meinswissen nach geht das garnicht.

Eine Lösung wäre das Spiel im Window Modus zu spielen. Von da aus kann man zwischen Programmen wechseln, ohne dass das Spiel minimiert wird.

Grüße, paresy

Totti 10. Jun 2005 15:15

Re: OSD / Fenster über ein anderen (FullScreen)Programm lege
 
Naja ... ich hatte mir nen Timer gebastelt, der sich in 5 sekunden selbst aktiiert und olgenden code startet:

SetWindowPos(Handle,HWND_TOPMOST,left,top,width,he ight,SWP_SHOWWINDOW);

(Evtl. ist ja der falsche parameter schlechtgewählt?)
Dann bin ich in des FullScreen-Spiel gewechselt ... und hatte nach 5 Sekunden auch kurz die Form zu Gesicht bekommen, danach aber nurnoch den Windows Mauszeiger.


P.S.: Sicher ist WIndowed-Mode ne Alternative, aber gerade das möchte ich ja umgehen.

SirThornberry 10. Jun 2005 16:06

Re: OSD / Fenster über ein anderen (FullScreen)Programm lege
 
du könntest versuchen das Handle von dem Spiel-Fenster zu bekommen und deine Anwendung darauf zu plazieren (Parent setzen). Aber ich vermute dass, das Spiel deine Anwendung dann übermalt.

Kedariodakon 10. Jun 2005 16:15

Re: OSD / Fenster über ein anderen (FullScreen)Programm lege
 
Zitat:

Zitat von paresy
Eine Lösung wäre das Spiel im Window Modus zu spielen.

Viele Spiele bieten das aber nicht an Siehe HL2 oder SCCT oder oder oder...

Kann man die Spiele vieleicht dazu zwingen im Windowmode zu laufen, auch wenn sie es von sich aus nicht unterstützen? vielleicht nen Loader vorschalten oder so?

Bye

Totti 10. Jun 2005 18:10

Re: OSD / Fenster über ein anderen (FullScreen)Programm lege
 
Das Spiel, um was es mir geht (Fussball Manager) läuft ohne Probleme im Windowed-Modus ... aber cih fänds halt richtig schön, wenn man im FullSCreen spielt und dann so ein eingeblendetes Menü bekäme ;)

NicoDE 10. Jun 2005 18:17

Re: OSD / Fenster über ein anderen (FullScreen)Programm lege
 
Es ist ein grundsätzliches Problem...
Denn um deine Form 'bedienen' zu können, muss sie den Eingabefokus bekommen. Wenn das Spiel sich aber bei Verlust des Fokus minimiert, dann kann man da nicht viel machen. Vielleicht kannst Du es 'austricksen', indem Du dein Fenster zum Child des Hauptfensters des Spiels machst (aber da eine Mischung aus DirectX-Fullscreen und GUI-Fenstern ohnehin meist Probleme macht, wird das wohl auch nicht helfen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz