AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Schließen Button deaktivieren

Ein Thema von Der Jan · begonnen am 13. Feb 2007 · letzter Beitrag vom 13. Feb 2007
Antwort Antwort
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#1

Schließen Button deaktivieren

  Alt 13. Feb 2007, 10:21
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:
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;
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.
Weiß jemand, wie ich das beheben kann?
Gruß, Jan
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Schließen Button deaktivieren

  Alt 13. Feb 2007, 10:25
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?

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#3

Re: Schließen Button deaktivieren

  Alt 13. Feb 2007, 10:44
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.
Gruß, Jan
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#4

Re: Schließen Button deaktivieren

  Alt 13. Feb 2007, 10:52
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?
Gruß, Jan
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Schließen Button deaktivieren

  Alt 13. Feb 2007, 11:13
anstelle des Enable schmeiß den Eintrag einfach komplett aus dem Systemmenü raus
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#6

Re: Schließen Button deaktivieren

  Alt 13. Feb 2007, 11:22
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ß....

Gruß, Jan
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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