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 Titel anderer Anwendungen ändern! (https://www.delphipraxis.net/82200-titel-anderer-anwendungen-aendern.html)

jansie 8. Dez 2006 14:21


Titel anderer Anwendungen ändern!
 
Hallo Welt,
ist es möglich auf ein anderes Programm zuzugreifen und den Titel (in der Leiste) zu ändern?
Wenn ja wie?

Goldesel 8. Dez 2006 14:57

Re: Titel anderer Anwendungen ändern!
 
Ich glaube, dass dir SetWindowText weiterhelfen wird ...

Luckie 8. Dez 2006 14:59

Re: Titel anderer Anwendungen ändern!
 
Zitat:

SetWindowText cannot change the text of a control in another application.
Aber mit der API-Funktion SendMessage und der Nachricht WM_SETTEXT sollte es gehen.

Goldesel 8. Dez 2006 15:01

Re: Titel anderer Anwendungen ändern!
 
Mmmhhh ... bei mir funktioniert das auch mit SetWindowText.

Luckie 8. Dez 2006 15:04

Re: Titel anderer Anwendungen ändern!
 
Darauf würde ich mich aber nicht verlassen. Mit dr nächsten Version (Vista), dem nächsten Servicepack oder Patch kann es damit schon vorbei sein.

Muetze1 9. Dez 2006 16:15

Re: Titel anderer Anwendungen ändern!
 
Zitat:

Zitat von Luckie
Zitat:

SetWindowText cannot change the text of a control in another application.
Aber mit der API-Funktion SendMessage und der Nachricht WM_SETTEXT sollte es gehen.

Frage: In welchem Speicherbereich sollte denn der Text liegen? Er schickt einer fremden Anwendung diese Message, somit liegt der Text, auf den die Message bzw. lParam zeigt in seinem App Space. Somit sollte die andere App damit nicht viel anfangen können, oder?

Christian Seehase 9. Dez 2006 22:37

Re: Titel anderer Anwendungen ändern!
 
Moin Thomas,

Zitat:

Zitat von PSDK - SetWindowText - Remarks
To set the text of a control in another process, send the WM_SETTEXT message directly instead of calling SetWindowText.


Muetze1 9. Dez 2006 22:43

Re: Titel anderer Anwendungen ändern!
 
Zitat:

Zitat von Christian Seehase
Moin Thomas,

Zitat:

Zitat von PSDK - SetWindowText - Remarks
To set the text of a control in another process, send the WM_SETTEXT message directly instead of calling SetWindowText.


Ok, gut, aber dann würde ich interessehalber immernoch gerne wissen, wie denn der Text von einem Process-Speicherbereich in den anderen Process-Speicherbereich kommt. Bei WM_COPYDATA wird dies umgesetzt, aber wie läuft das hier bei WM_SETTEXT?

Christian Seehase 9. Dez 2006 23:13

Re: Titel anderer Anwendungen ändern!
 
Moin Thomas,

das läuft, im Prinzip, so, wie bei WM_COPYDATA.
Das Betriebssystem kümmert sich darum, dass die Daten prozessübergreifend zur Verfügung stehen.

Dies funktioniert bei allen Controls, die es schon zu 16-Bit-Windows-Zeiten gab, da die Anwendungen hier in einem gemeinsamen Adressraum liefen, die Daten also so übertragen werden konnten.
Es handelt sich also um ein Kombatibilitäts-Relikt aus 16-Bit-Zeiten.

Bei neueren Controls (z.B. ListView) geht das nicht mehr.

Muetze1 10. Dez 2006 01:06

Re: Titel anderer Anwendungen ändern!
 
Super! Wieder was dazu gelernt. Danke!


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