Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Form Close verhindern wenn...
DelphiNoob - Mi 22.01.03 21:39
Titel: Form Close verhindern wenn...
Hi,
da man unter einem NT System (NT, 2k, XP) ja bekanntlich nicht "einfach" so die Systemtasten deaktivieren kann, wie z.b. bei 9x Systeme hab ich mir etwas gebastelt um die ALT + F4 Vorrichtung zu überlisten.
Wenn man mein Programm wie vorgesehen über den Beenden knopf schliesst (der PC fährt dann runter), funktioniert auch alles. abei wird eine Variable übergeben die Boolean ist. In der Procedure FormClose steht also: If Beenden = true then... usw.
Nun ist es so, das wenn ELSE zutrifft, also beenden nicht true ist, ich gerne das Beenden des Programmes abbrechen würde. Soll heissen es soll bestehen bleiben. Auf diese Art und Weise hätte ALT + F4 keine Chance.
Falls es jemanden interessiert wieso dies so Wichtig ist: Das Programm wird im Endeffekt ein Klassenraum-Kontroll-Programm für weiterführende Schulen.
Ich hoffe auf eine schnelle Antwort.
Mfg
DelphiNoob
littlemike1005 - Mi 22.01.03 21:48
solange der anwender die möglichkeit hat einen task per taskmanager "abzuschiessen" kann man dein prog auch beenden.
ich glaube nicht das es ausreicht wenn du nur das beenden verhinderst.
DelphiNoob - Mi 22.01.03 21:51
Doch...
wenn ich den Prozess über den TaskMgr killen will, kommt auch die If beenden True abfrage. Ich bräuchte eine Möglichkeit an diesem Punkt das beenden zu stoppen.
Ok, es mag sein das durch den TaskMgr das Programm dann dennoch Beendet wird, aber es dürfte ja nicht so schwer sein den Handle von TaskMgr zu kriegen, und den bei Öffnung beenden.
DelphiNoob - Mi 22.01.03 21:54
Und falls jemand doch weiß wie man vieleicht die Systemtasten deaktivieren kann (2k/XP), der soll sich melden! Ich würde auch abgeänderte .dll's in kauf nehmen.
littlemike1005 - Mi 22.01.03 22:22
@DelphiNoob du bist ja ein killer. ne fenster wech du bist über. und tschüsssss.
ja ne windows is klar
DelphiNoob - Mi 22.01.03 22:25
Schon mal Taskmgr offen gehabt und ALT + F4 gedrückt. Der schliesst ganz normal! Das kann man ohne weiteres simulieren...
smiegel - Mi 22.01.03 22:49
Hallo,
Delphi-Quelltext
1: 2: 3: 4:
| TForm1.FormClose(Sender: TObject; var Action:TCloseAction); begin if Beenden then Action:=caFree else Action:=caNone; end; |
DelphiNoob - Mi 22.01.03 23:36
Danke smiegel für diese produktive Antwort. Hat mir sehr geholfen!
Wolff68 - So 26.01.03 00:05
Warum setzt Du nicht einfach im Form.OnCloseQuery das CanClose auf false?
Dann schließt sich Dein Programm doch auch nicht !?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!