Autor Beitrag
Querscheck
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mo 14.10.02 21:23 
Hallo! :wink2:

Ich möchte ein Programm erstellen, mit einem Button. Wenn man auf ihn klickt, soll Windows nach einer Festgelegten Zeit (zB. 20 Sec.) herunterfahren. Den Code zum Herunterfahren hab ich ja schon:
 ExitWindowsEx(EWX_SHUTDOWN, 0);
Aber wie mach ich das mit dem Countdown ?? :?: :?:
Am besten sollte man die Countdownzeit auch noch sehen (Windows wird in 10,9,8,7,6,5 Sekunden heruntergefahren usw.). Diese Zeit möchte ich selber festlegen.
Gibt es eigendlich auch einen Code, mit dem Windows anstürtzt(Bluescreen usw.) ?? Oder mit dem man eine Fehlermeldung erzeugen kann ?? :?:


Frage Nr. 2 : Wie kann ich das Kreuzchen zum schließen oben rechts in der Ecke deaktivieren, so dass man es nicht anklicken kann ??
Das würde ich nämlich gerne in meiner Anwendung haben.

Sehr sehr vielen Dank für Antworten!

cya: Querscheck :wave: :wave: :wave: [/code]

_________________
Das leben ist wie ein Game, bloß die Grafik ist schöner! (C) Querscheck 2002
Querscheck Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mo 14.10.02 21:25 
Sorry, eins hab ich noch vergessen!
Ich hab schon überall im Forum Antworten auf meine Fragen gesuch, hab aber leider keine gefunden!


:D

_________________
Das leben ist wie ein Game, bloß die Grafik ist schöner! (C) Querscheck 2002
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 14.10.02 21:37 
Du kannst einen Timer nehmen und ihn auf 20 Sekunden einstellen. Nach 20 Sekunden wird der Code in der OnTimer Prozedur ausgeführt.

Soviel zu deiner Frage und jetzt zu deinem Programm.

Bevor du dein Programm weiterverschenkst solltest du eins bedenken: Der andere kann schon seit zwei Stunden an irgenetwas arbeiten ohne es abgespeichert zu haben. Wenn er dein Programm startet und langsam vom Begriff ist, dann bist du schuld wenn zwei Stunden seiner Arbeit in Nervana landen. Kann sein, daß er das dann nicht witzig findet.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 15.10.02 08:28 
Im Normalfall sollte eigentlich eine Abfrage aller offenen Programme kommen. Es gibt zwar noch einen wirklich harten Weg, den Shutdown auszulösen, der keine Abfragen erzeugt, aber den weiß ich im Moment nicht. Hm ... :? Ist vielleicht auch besser.

In einem Punkt hat Popov recht -
Wenn das Programm meinen PC runterfährt und ich dadurch wichtige Daten verliere, dann würde ich mal gucken, von wem dieses Programm ist. Und wenn ich´s geschenkt bekommen habe, dann würde ich hingehen und dem Kerl eine compilieren ... :evil:

Ich frage mich ernsthaft, wozu das Programm gut sein soll.

Bleibt nur zu hoffen, dass das Opfer ein NT-Betriebssystem laufen hat und als normaler Benutzer angemeldet ist. Dann kann er über den Shutdown-Versuch von Querscheck (s. sein Codeposting) nur müde grinsen. Wenn das dein ganzer Code für den Shutdown ist, dann wird´s wohl nichts werden. :twisted: Und bei der Sache wollen wir´s auch belassen ...
a.C.k
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 93

WIN 2000
Delphi 6 Enterprise ; Delphi 7 Studio
BeitragVerfasst: Di 15.10.02 08:57 
HI,
da ich denke das du die schon gedanken über deine Anwendung gemacht hast und KEINE dummheiten vor hast, dann will ich mal versuchen dir ein paar Tips zu geben.

Zitat:
Wie kann ich das Kreuzchen zum schließen oben rechts in der Ecke deaktivieren, so dass man es nicht anklicken kann ??


Schau mal im Objektinspektor bei deinem Form. Vieleicht kommst du weiter wenn du mal einen Blick auf Bordericons firfst. (Kann sein, dass sich das "X" nur ausblenden lässt, wenn auch die anderen Felder ausgeplendet sind...)

Was das herrunterfahren angeht, da solltest du dich noch mal etwas umsehen. Um ein NT-System herrunter zu fahren musst du dir die passenden Handles besorgen. Müsste aber auch zu finden sein.

Mach aber keinen unsin danmit!!!

_________________
Wer nicht gerne denkt, sollte wenigstens von Zeit zu Zeit seine Vorurteile neu gruppieren.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 15.10.02 11:40 
a.C.k hat folgendes geschrieben:
da ich denke das du die schon gedanken über deine Anwendung gemacht hast und KEINE dummheiten vor hast

Meinst du? Dann wäre die Frage, warum unbedingt der Schließen-Button deaktiviert werden soll? Letztlich ist es egal, denn über den Taskmanager kannst du das Programm ja -zum Glück- rauswerfen, aber so 100% unbedenklich scheint mir die Idee nicht zu sein. Lies dir auch mal diese Frage durch:
Querscheck hat folgendes geschrieben:
Gibt es eigendlich auch einen Code, mit dem Windows anstürtzt(Bluescreen usw.) ?? Oder mit dem man eine Fehlermeldung erzeugen kann ??

Die Antwort ist: Ja. Aber wozu soll das gut sein? Für ein harmloses Programm sicher nicht. Und vom Buttonklick bis zum Auslösen der Aktion im Hintergrund ist es nur ein kleiner Schritt.

Zitat:
Mach aber keinen unsin danmit!!!

Diese Aufforderung setzt eine gewisse geistige Reife des Angesprochenen voraus. Womit ich keinem der hier Anwesenden etwas Gegenteiliges unterstellen möchte. Ich gehe einfach mal davon aus, dass Querscheck ein Scherzprogramm im Sinn hat. Ich werde mal optimistisch sein und ihm nichts Böses unterstellen. :roll: Dann muss ich aber sagen, dass es eine schmale Grenze zwischen Scherz und virulentem Code gibt -

Ein Scherzprogramm ist für mich z.B. eins, dass mich 3 Minuten lang mit einem Progressbar und der Meldung "Ich formatiere gerade deine Festplatte" quält und sich nicht beenden oder abbrechen lässt. Nach den 3 Minuten erscheint dann aber eine Meldung "Mann, wenn das jetzt echt gewesen wäre." Spätestens da fällt mir ein Stein vom Herzen und ich kann darüber lachen.

Wenn aber ein Programm mein System herunterfährt, evtl. noch so, dass ich keine Chance habe, Daten zu sichern, bzw. dass ich keine Möglichkeit habe, das Programm zu beenden (anders lässt sich die Frage nach dem Deaktivieren des Schließen-Buttons in der Titelzeile ja nicht deuten), dann ist IMHO die Grenze zum Virus schon überschritten und ich finde es nicht witzig, wenn mir dadurch Schaden entsteht.

Mein Rat an solche Witzbolde ist daher:
Denkt vorher darüber nach, was ihr in der Situation machen würdet. Sagen wir als Beispiel, ihr programmiert gerade, und im Gegensatz zu sonst klappt alles. Keine Fehler, das Programm funktioniert tadellos. Vor lauter Aufregung habt ihr nur vergessen, den aktuellen Status des Quellcodes zu sichern.
Und plötzlich fährt euer System runter ... vielleicht noch mit einer gehässigen Meldung wie "dieser Shutdown wurde gesponsort von Querscheck". Ich möchte den sehen, der da ruhig bleibt oder lacht. :evil:
Querscheck Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Di 15.10.02 11:57 
Nein Leute, das mit dem "Bluescreen" war nicht so gemeint. Es war ein bisschen übertrieben! Sorry! :oops: :oops:
Es soll auch kein Virus sein, eigendlich nur eim Schertzprogramm, mit dem nichts zerstört wird!
Ich hab ein übertrieben!
Könnt ihr mir Tipps für ein gutes Schertzprogramm geben ???

Ich hab schon mal eins programmiert, das Windows herunterfährt, also nix mir Virus und so! :wink:
Könnt es ja mal saugen wenn ihr wollt:
mitglied.lycos.de/querscheck/

Es passiert michts schlimmes, nur Windows wird beendet!
Is auch nix besonderes. Ich nenne es den "Wunschgenerator".


Querscheck

_________________
Das leben ist wie ein Game, bloß die Grafik ist schöner! (C) Querscheck 2002
a.C.k
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 93

WIN 2000
Delphi 6 Enterprise ; Delphi 7 Studio
BeitragVerfasst: Di 15.10.02 11:58 
Ja Mathias, du hast auf jeden Fall recht!

Aber die möglichkeit, das "X" im Fenster auszublenden stelt für mich noch keine gefahr da. Schließen kann mann ja noch auf viele weitere Arten ;).

Auch wenn das System herrunterfährt, bekommt man bei gescheiten programmen immer noch mal die aufforderung, ob man nicht speichern möchte. Auch wenn ich einen Code hätte der Einen Blescreen erzeugt, würde ich ihn natürlich auch nicht weiter geben.

Aber auf jeden Fall hast du recht. Sobald wir Quellcode aneinander reihen unterligen wir einer gewissen Verantwortung! Das sollte keienr vergessen!

Ich möchte hier keinem etwas unterstellen, aber mann sollte sich sicherlich gedanken machen, was ein Programm auslösen könnte...

_________________
Wer nicht gerne denkt, sollte wenigstens von Zeit zu Zeit seine Vorurteile neu gruppieren.
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Di 15.10.02 12:15 
Ich wirds so machen:

Auf nem Form einen Button und einen Timer erstellen. Timer.Interval auf 0 setzen.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender:TObject);
begin
 Timer1.Tag:=10; // für 10 Sekunden
 Timer1.Interval:=1000; // alle Sekunde prüfen
end;

procedure Timer1Timer(Sender:TObject);
begin
 Timer1.Tag:=Timer1.Tag-1; // eine Sekunde abziehen
 Button1.Caption:='Noch '+IntToStr(Timer1.Tag)+' sec'; // Zeit anzeigen
 if Timer1.Tag<1 then ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE, 0); //herunterfahren
end;


Vorsicht, wenn mich der Parameter EWX_FORCE nicht täuscht, werden die Programme sauber beendet, kriegen dazu aber nur etwa 5 Sekunden seit. Ansonsten sollte der Code sich selbst erklären,

maxk

PS: Kannste auch so machen, ist vielleicht besser:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender:TObject);
var a:integer;
begin
 a:=10; // 10 Sekunden warten
 while a>0 do begin
  Button1.Caption:='Noch '+IntToStr(a)+' sec';
  Application.ProcessMessages;
  Sleep(1000); // Eine Sekunde warten
 end;
 ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE, 0); //herunterfahren
end;

So kannste auf den Timer verzichten...

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 15.10.02 16:59 
@Querscheck

Zuerst sollte ich dir sagen, daß ich selbst mit so einem Programm wie deinem reingelegt worden bin. Es war zwar nur eine halbe Stunde Arbeit die verloren ging, es war aber dennoch nicht witzig. Ich hab meinen Freund dann drei Wochen mit Nichtbeachtung bestraft. Der Scherz ist nach hinten losgegangen.

Hier aber ein altes Scherzprogramm von mir. Dabei ist der Quellcode gerade mal drei Zeilen groß. Dennoch fanden es einige nicht witzig und haben es mir übel genommen. Funktioniert übrigens nur bei Win9x.

Zuerst hab ich dafür gesorgt, daß man mein Programm nicht beenden kann. Dann hab ich dafür gesorgt, daß jedes mal wenn man es versucht, zwei Kopien meines Programms gestartet wurden die ebenfalls nicht beendet werden konnten. Weil mein Programm nicht beendet werden konnte, konnte auch Windows nicht beendet werden. Hat man es über den Taskmanager versucht, dann bekam man als Straffe zwei neue Fenster. Die einzige Möglichkeit war den Stecker zu ziehen.

Zu meiner Ehrenrettung muß ich aber sagen, daß ich das ganze nicht als Programm weitergegeben habe. Ich hab die drei Zeilen Code in einen Delphiforum gepostet und gefragt: "was macht eigentlich dieses programm". Etliche Leute haben es kopiert, eingefügt und gestartet ohne sich vorher den Code angeguckt zu haben. Böser Popov :twisted: Allerdings hat dieser Code keinen Schaden angerichtet, hat nur etwas genervt.

Also immer schön aufpassen. Kann sonst nach hinten losgehen.

Hier übrigens der King aller Scherzprogramme: mitglied.lycos.de/po...me/gameofthegame.exe
patmann2001
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Di 15.10.02 18:39 
Hi
Habe das mal runtergeladen.
Bin froh, das mein Virenscanner an war. Der ließ das Starten der Anwendung gar nicht erst zu.

cu Patmann