Autor Beitrag
SQLException
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 89

WinXP + D5 Enterprise
Win2k + D6 Personal
BeitragVerfasst: 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 user profile iconGausi: Topic aus VCL (Visual Component Library) verschoben am Fr 13.05.2005 um 14:15
Amiga-Fan
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 534



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Win XP
Delphi 2005
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 89

WinXP + D5 Enterprise
Win2k + D6 Personal
BeitragVerfasst: Fr 13.05.05 12:40 
user profile iconAmiga-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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 13.05.05 12:45 
user profile iconSQLException 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 534



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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
BeitragVerfasst: Fr 13.05.05 12:53 
user profile iconSQLException 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 89

WinXP + D5 Enterprise
Win2k + D6 Personal
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 89

WinXP + D5 Enterprise
Win2k + D6 Personal
BeitragVerfasst: 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:

ausblenden 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: :lol: @gausi.


Zuletzt bearbeitet von SQLException am Fr 13.05.05 13:20, insgesamt 3-mal bearbeitet
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 89

WinXP + D5 Enterprise
Win2k + D6 Personal
BeitragVerfasst: Fr 13.05.05 13:54 
user profile iconFabian W. hat folgendes geschrieben:

Man muss nur suchen...


stimmt, aber es ist auch einfacher ein thema zu finden, wenn man es schon kannte. :wink:
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Fr 13.05.05 13:57 
Ich kannte es zwar, aber die deshlab sucht sdie Suche net besser :wink: . Naja ließ ihn dir durch, ich denk da steht alles drin.
SQLException Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 89

WinXP + D5 Enterprise
Win2k + D6 Personal
BeitragVerfasst: Fr 13.05.05 14:14 
kann es sein dass das SystemKeys(False) unter winxp keine wirkung hat? mal auf win98 schaun...