Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Titelleiste von fremdem Programm entfernen (https://www.delphipraxis.net/123213-titelleiste-von-fremdem-programm-entfernen.html)

The Riddler 29. Okt 2008 16:24


Titelleiste von fremdem Programm entfernen
 
Der Titel sagt es bereits, ich möchte gern die Titelleiste eines fremden Programmes entfernen. Suche hat leider nichts ergeben. Hat jemand eine Idee?

Thx

SirThornberry 29. Okt 2008 16:28

Re: Titelleiste von fremdem Programm entfernen
 
An welcher Stelle genau kommst du nicht weiter?
Du musst zuerst das Fenster ermitteln, dann den Style des Fensters ändern und abschließend noch ein neu zeichnen erzwingen.

The Riddler 29. Okt 2008 16:29

Re: Titelleiste von fremdem Programm entfernen
 
Handle des Windows ist bereits bekannt, es geht um das Entfernen der Leiste. ;)

Zitat:

dann den Style des Fensters ändern und abschließend noch ein neu zeichnen erzwingen.
Grüße

jfheins 29. Okt 2008 16:31

Re: Titelleiste von fremdem Programm entfernen
 
get/setwindowlong mit GWL_STYLE als 2. Parameter ;)

http://msdn.microsoft.com/en-us/library/ms633591(VS.85).aspx

DeddyH 29. Okt 2008 17:03

Re: Titelleiste von fremdem Programm entfernen
 
Also so, bevor er sich totsucht ;)
Delphi-Quellcode:
SetWindowLong(Wnd,GWL_STYLE,GetWindowLong(Wnd,GWL_STYLE) and not WS_CAPTION);

The Riddler 29. Okt 2008 17:15

Re: Titelleiste von fremdem Programm entfernen
 
Dankesehr euch beiden.

Luckie 29. Okt 2008 21:40

Re: Titelleiste von fremdem Programm entfernen
 
Kann mir mal bitte jemand erklären, wozu das gut sein soll?

The Riddler 31. Okt 2008 09:05

Re: Titelleiste von fremdem Programm entfernen
 
Soweit so gut, nun gibt es manchmal das Problem, dass es seltsamerweise auf manchen PCs klappt und auf anderen nicht. Bei meinem PC zum Beispiel wird die Titelleiste entfernt und bleibt auch entfernt. Bei einem anderen PC verschwindet die Titelleiste nur für ein paar Sekunden und wird dann seltsamerweise wieder hergestellt, wovon auch immer. Jemand ne Idee?

The Riddler 1. Nov 2008 12:21

Re: Titelleiste von fremdem Programm entfernen
 
** push **

The Riddler 10. Nov 2008 19:37

Re: Titelleiste von fremdem Programm entfernen
 
Nun gibt es ein neues Problem. Statt die Titelleiste zu entfernen, soll sie umgewandelt werden. Praktisch habe ich ein normales Fenster, und hätte nun gerne das dieses ein ToolWindow ist. Also mit kleiner Titelleiste. Aber wie? Ich habe mit SetWindowLong und WS_CHILD rumgespielt, aber nichts hat funktioniert. Jemand nen Tipp?

jfheins 10. Nov 2008 20:52

Re: Titelleiste von fremdem Programm entfernen
 
Versuch es mal so:
Delphi-Quellcode:
SetWindowLong(Wnd, GWL_EXSTYLE, GetWindowLong(Wnd, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
;)

Um es dann auch anzuwenden, musst du auch noch setwindowpos aufrufen:
Delphi-Quellcode:
SetWindowPos(hhd, 0 ,0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or SWP_NOZORDER or SWP_FRAMECHANGED );

The Riddler 10. Nov 2008 22:05

Re: Titelleiste von fremdem Programm entfernen
 
Thank you so much sir!

Fridolin Walther 11. Nov 2008 00:09

Re: Titelleiste von fremdem Programm entfernen
 
Zitat:

Zitat von Luckie
Kann mir mal bitte jemand erklären, wozu das gut sein soll?

Am häufigsten wird das eingesetzt bei Spielen.

Viele Spiele erfordern es einfach, Sachen online nachzuschauen. MMORPGs sind da ganz vorne dabei. Nun braucht so ein Wechsel vom Spiel im Vollbildmodus auf den Desktop recht viel Zeit. Der Inhalt des Grafikspeichers will gesichert werden usw. usf.. Ausserdem reagieren einige Spiele beim Wechsel sehr empfindlich und neigen zu undefinierbarem Verhalten.

Deshalb haben viele Spiele einen Fenstermodus. Der Fenstermodus macht nicht nur das parallele Nutzen von Spiel und Ressourcen ausserhalb des Spiels deutlich einfacher, sondern behebt auch diese lästigen Probleme die einige Spiele beim minimieren haben. Leider hat man dort so einen hässlichen Fensterrahmen.

Lösung:
Fensterrahmen wird einfach ausgeblendet und die Größe des Fensters wird auf die Auflösung gesetzt. Der Effekt ist ein Spiel das aussieht wie im Vollbildmodus, aber problemlos das Wechseln zu anderen Anwendungen erlaubt ohne lästige Verzögerungen oder Stabilitätsprobleme. Das Ganze zahlt man zwar mit verringerter Performance, aber ob ihr Spiel jetzt mit 50 oder 60 FPS rennt, interessiert die meisten Zocker recht wenig. Das Ganze haben übrigens auch einige Spielehersteller erkannt und bieten entsprechend einen "maximierten Fenstermodus" bzw. "Fenstermodus ohne Fensterdekoration" an (World of Warcraft, Warhammer Online z.B.). Aber halt nicht alle. Dort gibts den Effekt dann über spezielle Launcher/Loader, die einfach die Fensterdeko entfernen (Age of Conan z.B.).


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:29 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