![]() |
Schließen Button deaktivieren
Hallo miteinander,
ich möchte bei einem fremden Fenster, konkret dem Console-Window, den Schließen-Button, Alt-F4 und den Punkt "Schließen" im System-Menu deaktivieren.
Delphi-Quellcode:
Das funzt auch soweit erstmal. Alt-F4 ist aus, der "X"-Button wird ausgegraut und kann nicht mehr geklickt werden. ABER: Im Systemmenu ist "Schließen" nicht deaktiviert und sobald ich auf das Icon klicke und das System-Menu aufgeht, wird das "X" wieder aktiviert was natürlich nicht Sinn und zweck der Sache ist.
if(sClassNameShort = 'CONSOLE') then begin
Wnd := FindWindow(PChar(sClassName), PChar(sFormName)); if(Wnd <> 0) then begin EnableMenuItem(GetSystemMenu(Wnd, false), SC_CLOSE, MF_BYCOMMAND or MF_GRAYED); SetClassLong(Wnd, GCL_STYLE, GetClassLong(Wnd, GCL_STYLE) or CS_NOCLOSE); end; end; Weiß jemand, wie ich das beheben kann? |
Re: Schließen Button deaktivieren
Ich weiß ad hoc nicht wie, aber über das Suchen des Systemmenüs geht bestimmt. Aber selbst wenn Du das geschafft hast, wie willst Du verhindern, dass der User einfach EXIT am Command-Prompt eingibt?
...:cat:... |
Re: Schließen Button deaktivieren
Das will ich nicht verhindern bzw. das kann der User nicht, den er hat kein Prompt, weil im Con-Fenster eine alte DOS-Anwendung läuft, die sehr empfindlich reagiert, wenn man sie nicht wie vorgesehen schließt. Deshalb möchte ich verhindern, das der User eben jenes tut.
|
Re: Schließen Button deaktivieren
Ich habe diese Methode (1. Post) eben bei einem normalen Delphi-Form versucht, hier funktioniert es problemlos und genauso, wie es soll. Daher vermute ich, daß das System-Menu des Consolefensters ein anderes Handle hat. Die Frage ist nun: Es dem so und wie komme ich da ran?
|
Re: Schließen Button deaktivieren
anstelle des Enable schmeiß den Eintrag einfach komplett aus dem Systemmenü raus
|
Re: Schließen Button deaktivieren
Hast recht, das hab ich jetzt auch gemacht, mit DeleteMenu. Wäre zwar trotzdem mal interessant, zu wissen, warum das mit den Handles so seltsam ist hier, aber das eigentliche Problem ist gelöst. Danke für Eure Bemühungen. Ist halt immer bissel doof, wenn mal alte Anwendungen auf neuen System migrieren muß....
:coder: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 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