| Autor |
Beitrag |
SQLException
      
Beiträge: 89
WinXP + D5 Enterprise
Win2k + D6 Personal
|
Verfasst: Fr 13.05.05 10:18
moin,
wie kann ich es anstellen, das man mein programm nicht verlassen werden kann, bzw. nur durch eine tastenkombination (ist schon erledigt!). wenn ich mein programm mit windowstate wsMaximized starte, oder es zur laufzeit auf bildschirmauflösung ausweite, dann komm ich immernoch an die taskleiste unten (soll nicht sein), zudem gibts auch die windowstaste zwischen alt und strg, diese möchte ich auch gerne deaktivieren, genauso wie das alt + F4, alt + tab ist in meinem fall nicht so wichtig, da mein programm eh das einzige ist das auf dem zielrechner läuft. Moderiert von Gausi: Topic aus VCL (Visual Component Library) verschoben am Fr 13.05.2005 um 14:15
|
|
Amiga-Fan
      
Beiträge: 534
|
Verfasst: Fr 13.05.05 10:43
wieso soll das so sein? Im Zweifelsfall kann man immer noch über den Taskmanager dein Programm abschießen. Ich persönlich sehe solche Anfragen nicht so gerne...
|
|
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Fr 13.05.05 11:09
Man malt nicht schon wieder den Teufel an die Wand...
Es gibt so viele Gründe ein Programm (z.B. bei Datenübertragung) nicht schliessen zu dürfen...
Setz mal im Form.OnCloseQuery die Variable CanClose auf False
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 13.05.05 11:13
Die sicherste Lösung ist die:
Nimm einfach die Tastatur von dem Rechner weg und setz einen Touchscreen daran. Sollen dennoch vereinzelte Texteingaben gemacht werden: Programmier eine einfache Bildschirmtastatur dazu.
Kommt natürlich auf die Art des Programms an, und auch darauf, ob das Programm auf mehreren Rechnern laufen soll, oder nur auf einem bestimmten, den du auch entsprechend umbauen kannst...
_________________ We are, we were and will not be.
|
|
fantotal
      
Beiträge: 24
Win XP
Delphi 2005
|
Verfasst: Fr 13.05.05 12:31
Wieso kommen eigentlich solche Antworten? Er sagte doch nichts von einem Touchscreen, oder sonstigem...er will doch einfach nur wiessen, wie er die Tastenkombinationen unterbindet usw... Ist doch ganz egal, warum er das braucht...
_________________ So long,
Sebastian
|
|
SQLException 
      
Beiträge: 89
WinXP + D5 Enterprise
Win2k + D6 Personal
|
Verfasst: Fr 13.05.05 12:40
Amiga-Fan hat folgendes geschrieben: | | wieso soll das so sein? Im Zweifelsfall kann man immer noch über den Taskmanager dein Programm abschießen. Ich persönlich sehe solche Anfragen nicht so gerne... |
und ich sehe es nicht gerne, wenn die kinder der kindertagesstätte wo das system laufen soll, auf der tastatur (oder von mir aus touchscreen) rumhämmern statt ihre spiele zu spieln und dann aufn desktop landen und nicht wissen was sie machen sollen. die sollen mal schön in meiner anwendung bleiben wo ihnen nur die möglichkeiten geboten werden, die ich ihnen stelle.
CanClose := False ist zwar schon lustig, aber das hebt eigentlich nur die (geheime) tastenkombination auf mit der das prog beendet werden kann.
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 13.05.05 12:45
SQLException hat folgendes geschrieben: | moin,
wie kann ich es anstellen, das man mein programm nicht verlassen werden kann, bzw. nur durch eine tastenkombination (ist schon erledigt!). |
Dies ist die Hauptfrage. Unter der Voraussetzung, dass auf dem "Zielrechner" WindowsXP installiert ist, gibt es so gut wie keine Möglichkeit, ein Programm unschließbar zu machen, da es sich immer über den Taskmanager abschießen lässt.
Natürlich kann man tiefe Eingriffe ins System wagen, den Taskamanger über nen Timer einmal pro Sekunde beenden, sein eigenes Programm als Shell eintragen oder noch kompliziertere Sachen. Wirklich sauber sind die ganzen Lösungen nicht.
Das einfachste ist es, einfach die "problematischen" Eingabegeräte abzustöpseln. Wenn der Computer keine Eingaben mehr bekommen kann (außer die, die das Programm selbst verarbeitet), dann lässt sich das Programm auch nicht schliessen. Fertig.
@SQLException: So einen Einsatz habe ich vermutet
Ist denn der Einbau eines Touchscreens überhaupt möglich? Und sind die Spiele auch gut nur über Maus zu bedienen, oder müssen die ständig was tippen? Denn dann hat sich mein Vorschlag natürlich erübrigt...
_________________ We are, we were and will not be.
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Fr 13.05.05 12:50
Ich denke es ist durchaus möglich, sowas zu programmieren. Gibt ja genug Internet-Cafés wo man auch mit dem besten Willen nicht schafft, das Zeit-Kontroll-Programm o.ä. zu beenden. Natürlich sind tiefe Systemeingriffe notwendig, aber wenn man es wirklich sicher haben will, kommt man wohl nicht drum herum, solche Eingriffe zu tätigen.
|
|
Amiga-Fan
      
Beiträge: 534
|
Verfasst: Fr 13.05.05 12:53
aus Prinzip würde ich für diesen Einsatzzweck ein Betriebsystem nehmen, mit dem sich nicht alle auskennen. Heutzutage haben ja auch schon oft Kinder an Windows-PCs gesessen. Vielleicht Kylix für Linux?
| Zitat: | | Wieso kommen eigentlich solche Antworten? |
weil es freie Meinungsäußerung gibt.
|
|
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Fr 13.05.05 12:53
SQLException hat folgendes geschrieben: | | CanClose := False ist zwar schon lustig, aber das hebt eigentlich nur die (geheime) tastenkombination auf mit der das prog beendet werden kann. |
Kannst du das bitte normal erklären? Wenn ich CanClose auf false stelle kann ich das Programm durch keinen normalen weg beenden (Taskmanager mal ausgenommen)
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
SQLException 
      
Beiträge: 89
WinXP + D5 Enterprise
Win2k + D6 Personal
|
Verfasst: Fr 13.05.05 12:55
also auch wenn die rechner die gespendet werden nicht gerade alt sind, mit touchscreens werd ich die bestimmt nicht auch noch ausrüsten! ich denke schon das man bei diversen rechenspielen o. ä. die tastatur braucht, ich sag einfach mal ja.
win98 läuft auf den teilen. über eine listbox werden alle spiele, die auf dem rechner installiert sind, aufgelistet und können gestartet werden. es gibt imho tastaturen ohne die windowstaste, aber so eine habe ich nicht, fällt also auch aus.
taskleiste lässt sich wohl so verstecken, das sollte es tun.
jetzt ist die frage nach alt + F4 und strg + alt + entf, auch wenn ich einfach mal behaupte die meisten stöpsel kennen das gar nicht, aber wer weiss...
|
|
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Fr 13.05.05 12:58
Nochmal, wenn du CanClose auf False hast, kannst du das Programm nicht mit Alt+F4 beenden.
Unter Win98 hast du gute Chancen STRG+ALT+ENTF zu unterbinden... such mal hier im Forum...
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Fr 13.05.05 13:04
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
SQLException 
      
Beiträge: 89
WinXP + D5 Enterprise
Win2k + D6 Personal
|
Verfasst: Fr 13.05.05 13:11
ja alt + F4 geht dann nicht, aber wenn ich zu wartungszwecken doch mal das programm beenden möchte, und ich es jetzt noch schaffe strg + alt + entf zu deaktiviere, dann kann ich meine eigene anwendung nicht mehr beenden.
daher wollte ich mir eine hintertür offen halten, nämlich dass das programm beendet wird wenn eine bestimmte tastenkombination (= passwort) eingegeben wird, während das programm läuft. nur das CanClose macht diese passworteingabe halt auch hinfällig.
edit:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TAuswahl.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if beenden = False then begin CanClose := False; end; if beenden = True then begin CanClose := True; end; end; |
wobei "beenden" auf true gesetzt wird, sobald mein passwort eingegeben wurde in der anwendung. CanClose passt also so.
edit2:  @gausi.
Zuletzt bearbeitet von SQLException am Fr 13.05.05 13:20, insgesamt 3-mal bearbeitet
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 13.05.05 13:15
naja...wie wäre es, wenn du die Passwort-Abfrage in das OncloseQuery reinsetzt, und Canclose auf True oder False setzt, je nachdem ob das Passwort richtig oder falsch ist?
_________________ We are, we were and will not be.
|
|
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Fr 13.05.05 13:23
Ja genau das hätte ich jetzt auch gesagt... Setz einen globalen Flag, ruf bei deiner tastenkombination dein passwortfeld auf und setz das globale flag auf true... und nun kannst du das programm beenden wenn du im OnCloseQuery deinen Flag auswertest...
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
Fabian W.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: Fr 13.05.05 13:32
Da gab's shconmal n interessantes Topic:
www.delphi-forum.de/...mp;highlight=beenden
Man muss nur suchen...
|
|
SQLException 
      
Beiträge: 89
WinXP + D5 Enterprise
Win2k + D6 Personal
|
Verfasst: Fr 13.05.05 13:54
Fabian W. hat folgendes geschrieben: |
Man muss nur suchen... |
stimmt, aber es ist auch einfacher ein thema zu finden, wenn man es schon kannte. 
|
|
Fabian W.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: Fr 13.05.05 13:57
Ich kannte es zwar, aber die deshlab sucht sdie Suche net besser  . Naja ließ ihn dir durch, ich denk da steht alles drin.
|
|
SQLException 
      
Beiträge: 89
WinXP + D5 Enterprise
Win2k + D6 Personal
|
Verfasst: Fr 13.05.05 14:14
kann es sein dass das SystemKeys(False) unter winxp keine wirkung hat? mal auf win98 schaun...
|
|
|