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 Verhindern, das Form.Caption verändert wird... (https://www.delphipraxis.net/9538-verhindern-das-form-caption-veraendert-wird.html)

FriFra 28. Sep 2003 20:31


Verhindern, das Form.Caption verändert wird...
 
Es gibt Programme, wie z.B. WT-Raid, die die Caption das aktiven Fensters verändern um zusätzliche Infos anzuzeigen.
Wie kann ich verhindern, das dies passiert? Ich will selbst bestimmen was in der Form.Caption steht :evil:!

Daniel B 28. Sep 2003 20:39

Re: Verhindern, das Form.Caption verändert wird...
 
Immer wieder und ganz schnell selbst was reinschreiben?!

FriFra 28. Sep 2003 20:46

Re: Verhindern, das Form.Caption verändert wird...
 
Das ist keine gute Lösung. Besser fände ich, wenn man die entspr. Message blockieren könnte, sofern nicht mein Programm selbst die Caption ändert. Für Deinen Vorschlag würde ein Timer mit sehr kurzem Intervall benötigt werden, was die Performance zu stark beeinträchtigen würde.

Daniel B 28. Sep 2003 20:49

Re: Verhindern, das Form.Caption verändert wird...
 
In einem Thread oder evtl. doch Timer, 100ms sollten reichen, das Handle des Fensters merken und anhand dem die Caption abfragen und falls es sich geändert hat, dann Deines wieder schreiben.

FriFra 28. Sep 2003 20:57

Re: Verhindern, das Form.Caption verändert wird...
 
Das will ich so nicht machen... um die Caption zu verändern wird doch dem Fenster eine entspr. Message zugesandt. Genau diese Message müsste man blockieren! Aber wie?

moin339 28. Sep 2003 21:06

Re: Verhindern, das Form.Caption verändert wird...
 
:hi: FriFra

Warum willst du den User nicht selbst entscheiden lassen was in der Caption steht. Wenn er ein programm hat, dass die Caption ändert, dann bistimmt nicht ohne Grund.

ciao, moin339

Daniel 28. Sep 2003 21:13

Re: Verhindern, das Form.Caption verändert wird...
 
Vermutlich wirst Du die sog. 'WindowProc' überschreiben müssen. Ich bin alles andere als ein Fachman dafür, aber grob gesagt ist es wohl so, daß diese Window-Proc der zentrale Dreh- und Angelpunkt für die meisten -wenn nicht sogar für alle- Nachrichten ist, die an Dein Festenr gehen sollen.
Innerhalb dieser Window-Proc kann man die eingehenden Messages nach Typ sortieren und sich dadurch der Nachricht "WM_SETTEXT" (vermutlich wird es diese sein) bemächtigen und deren weitere Ausführung verhindern oder aber den Text mit dem von Dir gewünschten Inhalten überschreiben und die weitere Ausführung dann mit den neuen Parametern zulassen.

Weitere Infos wirst Du vermutlich in "dem Luckie sein" Tutorial finden. Alternativ auch in dem Delphi-Forum Deiner Wahl: Hier im Forum suchenWndProc :wink:.

FriFra 28. Sep 2003 21:14

Re: Verhindern, das Form.Caption verändert wird...
 
Aber ich finde das Fenster meines Programmes nicht wieder, wenn die Caption anders ist! Der Grund des Users ist mir egal. Ich habe die Caption auch nicht ohne Grund gewählt!

moin339 28. Sep 2003 21:26

Re: Verhindern, das Form.Caption verändert wird...
 
Zitat:

Zitat von FriFra
Aber ich finde das Fenster meines Programmes nicht wieder, wenn die Caption anders ist! Der Grund des Users ist mir egal. Ich habe die Caption auch nicht ohne Grund gewählt!

Das kann ja kein Problem sein. Dafür müsste es auf jeden fall eine Lösung geben (ohne Caption)
Dann musst du aber mal etwas genauer schildern warum du es nicht wiederfindest.

ciao, moin339

Luckie 28. Sep 2003 21:29

Re: Verhindern, das Form.Caption verändert wird...
 
Dann nimm einen eindeutingen Klassennamen.

FriFra 28. Sep 2003 21:30

Re: Verhindern, das Form.Caption verändert wird...
 
Zitat:

Zitat von moin339
Das kann ja kein Problem sein. Dafür müsste es auf jeden fall eine Lösung geben (ohne Caption)
Dann musst du aber mal etwas genauer schildern warum du es nicht wiederfindest.

ciao, moin339

Weil Findwindow nunmal die Caption benötigt...
Wenn ich nach einer bestimmten laufenden exe suchen würde, was durchaus kein grosses Problem ist, müsste ich alle Tasks abklappern, was aber viel zu lange dauern würde.

FriFra 28. Sep 2003 22:22

Re: Verhindern, das Form.Caption verändert wird...
 
Zitat:

Zitat von Luckie
Dann nimm einen eindeutingen Klassennamen.

wie mache ich das? wie finde ich dann das Fenster?

Luckie 28. Sep 2003 22:34

Re: Verhindern, das Form.Caption verändert wird...
 
Zitat:

Zitat von FriFra
Zitat:

Zitat von Luckie
Dann nimm einen eindeutingen Klassennamen.

wie mache ich das?

In dem du deiner Form einen gescheiten Namen gibst
Zitat:

wie finde ich dann das Fenster?
Mit FindWindow?

Daniel B 28. Sep 2003 22:50

Re: Verhindern, das Form.Caption verändert wird...
 
Nur so mal als Beispiel:
Delphi-Quellcode:
const
  ClassName = 'Setsuna Labs';
  AppName = 'MyFinalFantasy I';
Falls es um NonVLC geht...

Christian Seehase 29. Sep 2003 00:32

Re: Verhindern, das Form.Caption verändert wird...
 
Moin FriFra,

wozu brauchst Du denn FindWindow?
Wenn Du Daniels Vorschlag benutzt könntest Du es so machen

Delphi-Quellcode:
type
  TfrmMAIN = class(TForm)
    // ...
    procedure WndProc(var msg : TMessage); override;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

implementation

procedure TfrmMAIN.WndProc(var msg : TMessage);
begin
  if (msg.Msg = WM_SETTEXT) and (PChar(msg.LParam) <> 'Die Caption, die erhalten werden soll.') then exit;
  inherited WndProc(msg);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 Uhr.

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