Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fenstertitel von anderen Programmen ändern (https://www.delphipraxis.net/11714-fenstertitel-von-anderen-programmen-aendern.html)

Uncle Cracker 12. Nov 2003 12:32


Fenstertitel von anderen Programmen ändern
 
Wie kann man den Fenstertitel von anderen Programmen ändern während diese laufen?

Vielleicht weiß jemand wie das funktioniert.


:love: Danke UC

APP 12. Nov 2003 12:41

Re: Fenstertitel von anderen Programmen ändern
 
Hallo Uncle Cracker,

Delphi-Quellcode:
VAR
  aHandle                         : THandle;
BEGIN
  aHandle := FindWindow(NIL, 'Unbenannt - Editor');
  SetWindowText(aHandle, 'Mein Editor');
END;
Beachte: FindWindow() erwartet als 2. Parameter den *exakten* WindowTitel.

Uncle Cracker 12. Nov 2003 12:43

Re: Fenstertitel von anderen Programmen ändern
 
:love: Danke für die schnelle Antwort

Daniel 12. Nov 2003 12:43

Re: Fenstertitel von anderen Programmen ändern
 
(1) Handle des Ziel-Fensters besorgen
(2) Mit der API-Funktion SetWindowText(...) den neuen Titel setzen.
Das hält nicht unbedingt ein Leben lang, aber immerhin so lange, bis die andere Anwendung ihren Titel selber neu setzt.

Hier im Forum suchenFindWindow Hier im Forum suchenEnumWindows Hier im Forum suchenSetWindowText

Luckie 12. Nov 2003 13:51

Re: Fenstertitel von anderen Programmen ändern
 
Und was sagt das PSDK dazu?
Zitat:

To set the text of a control in another process, send the WM_SETTEXT message directly instead of calling SetWindowText.

Daniel 13. Nov 2003 08:41

Re: Fenstertitel von anderen Programmen ändern
 
Na gut Luckie, da hast Du eine schöne Passage gefunden. Aber jetzt stellt sich doch die eigentliche Frage: Warum?

Die Beschreibung enthält noch mehr Infos:

Zitat:

Zitat von Die MSDN-Library
However, SetWindowText cannot change the text of a control in another application.

Besagte Einschränkung bezieht sich lediglich auf Controls anderer Anwendungen, nicht auf deren Fenster-Titel. Für selbige eignet sich o.g. API-Funktion nämlich durchaus. ;-) Es ist also völlig legitim, wie oben vorgeschlagen, vorzugehen.

Luckie 13. Nov 2003 14:23

Re: Fenstertitel von anderen Programmen ändern
 
Nicht unbedingt. wennman auf Nummer sicher gehen will, sollte manauf alle Fälle WM_SETTEXT benutzen, denke ich.

Die Stelle findest du schön? mal sehen, soll ich dir noch ein paar hübsche raussuchen? :mrgreen:

Daniel 13. Nov 2003 14:25

Re: Fenstertitel von anderen Programmen ändern
 
Zitat:

Zitat von Luckie
Wenn man auf Nummer sicher gehen will, sollte manauf alle Fälle WM_SETTEXT benutzen, denke ich.

In Ordnung. Wenn mir jemand einen Weg aufzeigt, mein Programm sicherer zu machen, beschreite ich ihn gerne. Aber die Frage nach dem 'warum' ist noch ungeklärt. Aus den bisher zitierten Stellen des PSDK sehe ich keine potentiellen Risken.

Luckie 13. Nov 2003 14:27

Re: Fenstertitel von anderen Programmen ändern
 
Nein, daraus nicht, aber bei MS ist immer Vorsicht geboten.

BTW. Schreibt man sich dafür einen Wrapper und nimmt WM_SETTEXT, braucht man auf diesen Umstand keien Rücksicht nehmen. :zwinker:

Daniel 13. Nov 2003 14:28

Re: Fenstertitel von anderen Programmen ändern
 
Da hast Du wohl Recht. ;-)


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