Autor Beitrag
Marco15
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98

Win XP Prof.
D2 Schüleredition, D7
BeitragVerfasst: Mi 02.03.05 16:57 
Hallo zusammen!!!

Wie kann ich erreichen, dass Delphi Windows herunterfährt wenn eine Bedingung erfüllt wird ???

Bitte antwortet.

Danke schon Mal im vorraus.
Marco15

Ich habe ein Passwortprogramm erstellt bei dem Windows heruntergefahren werden soll, wenn man dreimal das falsche Passwort eingegeben hat.

????

Danke im Vorraus :lol:

Hier der Quelltext:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Label2: TLabel;
    Button12: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

var zaehler : integer;

procedure enter_klick;
begin
  if form1.edit1.text = '46446' then
    begin
      application.title := '-3.000 €';
      showMessage ('   Sie haben kein Geld mehr auf dem Konto   ');
      form1.edit1.clear;
      zaehler := 0;
    end
  else
    begin
      zaehler := zaehler +1;
        if zaehler = 1 then
          begin
            application.title := 'UNGÜLTIG !!!!!!';
            showMessage ('            Falsche Eingabe (1)             ');
            showMessage ('        Sie haben noch 2 Versuche !!!       ');
            form1.edit1.clear;
          end;
        if zaehler = 2 then
          begin
            application.title := 'UNGÜLTIG !!!!!!';
            showMessage ('            Falsche Eingabe (2)            ');
            showMessage ('        Sie haben noch 1 Versuch !!!      ');
            form1.edit1.clear;
          end;
        if zaehler = 3 then
          begin
            application.title := 'UNGÜLTIG !!!!!!';
            showMessage ('            Falsche Eingabe (3)             ');
            showMessage ('      Ihre Karte wird nun eingezogen !!!    ');
            form1.edit1.clear;
            showMessage ('Bitte wenden Sie sich an die Bundeszentralbank');
            halt;
          end;        
    end;
end;

procedure eins_klick;
begin
  form1.edit1.text := form1.edit1.text + '1';
end;

procedure zwei_klick;
begin
  form1.edit1.text := form1.edit1.text + '2';
end;

procedure drei_klick;
begin
  form1.edit1.text := form1.edit1.text + '3';
end;

procedure vier_klick;
begin
  form1.edit1.text := form1.edit1.text + '4';
end;

procedure fuenf_klick;
begin
  form1.edit1.text := form1.edit1.text + '5';
end;

procedure sechs_klick;
begin
  form1.edit1.text := form1.edit1.text + '6';
end;

procedure sieben_klick;
begin
  form1.edit1.text := form1.edit1.text + '7';
end;

procedure acht_klick;
begin
  form1.edit1.text := form1.edit1.text + '8';
end;

procedure neun_klick;
begin
  form1.edit1.text := form1.edit1.text + '9';
end;

procedure null_klick;
begin
  form1.edit1.text := form1.edit1.text + '0';
end;

procedure clear_klick;
begin
  form1.edit1.clear;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  enter_klick;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  eins_klick;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  zwei_klick;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  drei_klick;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  vier_klick;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  fuenf_klick;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  sechs_klick;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  sieben_klick;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  acht_klick;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
  neun_klick;
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  null_klick;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  clear_klick;
end;

end.


Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
Moderiert von user profile iconraziel: Beiträge zusammengefasst.
Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Mi 02.03.2005 um 17:50
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 02.03.05 17:12 
Warum dreimal der gleiche Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
        if zaehler = 1 then  
          begin  
            application.title := 'UNGÜLTIG !!!!!!';  
            showMessage ('            Falsche Eingabe (1)             ');  
            showMessage ('        Sie haben noch 2 Versuche !!!       ');  
            form1.edit1.clear;  
          end;  
        if zaehler = 2 then  
          begin  
            application.title := 'UNGÜLTIG !!!!!!';  
            showMessage ('            Falsche Eingabe (2)            ');  
            showMessage ('        Sie haben noch 1 Versuch !!!      ');  
            form1.edit1.clear;  
          end;  
        if zaehler = 3 then  
          begin  
            application.title := 'UNGÜLTIG !!!!!!';  
            showMessage ('            Falsche Eingabe (3)             ');  
            showMessage ('      Ihre Karte wird nun eingezogen !!!    ');  
            form1.edit1.clear;  
            showMessage ('Bitte wenden Sie sich an die Bundeszentralbank');  
            halt;  
          end;

Und Quellcode, wie man Windows runterfährt gibt es im Forum genug.
Marco15 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98

Win XP Prof.
D2 Schüleredition, D7
BeitragVerfasst: Mi 02.03.05 17:17 
Jo Danke

Tschau
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Do 03.03.05 12:22 
Ist aber sinnlos, denn so eine Passwortabfrage lässt sich bekanntlich durch den abgesicherten Modus umgehen.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Domi-ON.de
Hält's aus hier
Beiträge: 11

Win XP SP2
D7
BeitragVerfasst: Sa 05.03.05 11:53 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
        if zaehler <= 3 then    
          begin    
            application.title := 'UNGÜLTIG !!!!!!';    
            showMessage ('            Falsche Eingabe (1)             ');    
            showMessage ('        Sie haben noch 2 Versuche !!!       ');    
            form1.edit1.clear;    
          end;


so sparst du dir es 3 mal zu machen ^^

zum runterfahren, ausloggen oder sonst was, schau dir mal das an:

www.swissdelphicente.../showcode.php?id=168

//Edit: musst dir halt noch ne variable machen, wie viele Versuche es schon waren, die du dir dann oben anzeigen lassen kannst mit showmessage

_________________
<- I once had a life, now I have a modem and a computer ->
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Sa 05.03.05 11:59 
Wenn das Programm nicht für Win NT oder XP ist reicht auch ExitWindowsEx ohne dem Quelltext davor (der Quelltext davor ist nur dafür die Rechte für das herunterfahren vom Betriebssystem zu bekommen).
wewe
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Sa 05.03.05 22:09 
Ich wollt die gleiche frage uch in Forum stellen :D !
Kan nicht jemand ein code einfügen???? ( wie man den Computer in c oder c++ herunterfährt weiß ich aber in delphi nicht ! :( )
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 05.03.05 22:24 
Heiko hat folgendes geschrieben:
Wenn das Programm nicht für Win NT oder XP ist reicht auch ExitWindowsEx ohne dem Quelltext davor (der Quelltext davor ist nur dafür die Rechte für das herunterfahren vom Betriebssystem zu bekommen).

Erstens hieße es "ohne den", zweitens spielt das keine Rolle, denn unter 9x/ME macht der Code auch nichts, bzw. man kann/sollte ihn so gestalten, dass der unter 9x/ME nicht ausgeführt wird. Noch besser ist eine separate Prozedur, wie bspw. SetPrivilege, die man für verschiedene Zwecke nutzen kann.


@wewe: Da kann ja was nicht stimmen, denn der Befehl unterscheidet sich in Delphi bestenfalls ein bisschen von der Syntax. Wenn du also die C-Variante kennst, dann kennst du auch die Delphi-Version.