Jak zrobić program po którego włączeniu wyświetli się okno z prośbą o podanie hasła.Wpisane hasło zostanie zapamiętane i za każdym razem po włączeniu programu wyświetlane będzie okno z prosbą o podanie hasła.Hasło bedzie to które było wpisane jako pierwsze przy pierwszym włączeniu programu.(Gdy ktoś poda błędne hasło wyświetli się komunikat ze nie zna hasla i program sie zamknie.
podaj e-maila to ci wysle zrodla , OK ??--Ozyrys Pozdrawiam {hello}
Delphi 6
zapisać datę pierwszego odpalenia proga. Na poxczatku niech prog sprawdza aktualaną datę i porównuje ją z tą zapisana, jesli będzie więcej niż 30 dni, to niech wyswietla forme "podaj serial", jeśli zarejestruje, to niech usunie plik ;)
--Spin
(Delphi 5 Enterprise)
qrva, nic nie piłem i nie moge trafić tam gdzie chce ;) {browar} {browar} {glowa} --Spin
(Delphi 5 Enterprise)
na razie ci powiem ze haslo musisz zapisac w rejestrze a jak chcesz zeby pierwsze wpisane haslo bylo potem aktualne to mozesz zapisac w rejestrze wartosc typu boolean i jezeli jest true to sprawdzac haslo ze stringiem w rejstrze a jak jest false to zapisac string...
troche to zagmatwalem , jak niekapujesz to wyjasnie--Ozyrys Pozdrawiam {hello}
Delphi 6
mozna by jeszcze haslo zapisywac do rejestru w stanie zakodowanym, zeby RegEditem nie dalo sie podejrzec...--Pawel
Delphi6
Proszę źródło programu na [email protected]
Sorrki ze mi sie nie chce pisac calego programu ale napisze jak to zrobic...
Ja bym to zrobił nastepujaco :
- najpierw ukryl forme programu przy wlaczaniu (w Project Source) :
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.ShowMainForm := false;
Application.Run;
end.
2)Ustalic zmienna globalana :
B : Boolean;
3)Potem wstawil w OnCreate formy taka procke :
procedure TForm1.FormCreate(Sender: TObject);
var
Reg : TRegistry;
begin
B := false;
Reg := TRegistry.Create;
try
Reg.OpenKey( 'Software\hasło' , true );
if Reg.ValueExists('wlaczone') then
B := Reg.ReadBool( 'wlaczone' );
finally
Reg.Free;
end;
end;
- Wstawic Timera z intervalem '5' a w OnTimer :
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if B = true then
Form2.ShowModal; *forma gdzie user ma podac hasło
if B = false then
Form3.ShowModal; *forma gdzie user ma ustalic haslo
end;
- Na formie nr 3 tak zapisac do rejestru haslo :
rocedure TForm3.Button1Click(Sender: TObject);
var
Reg :TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
try
Reg.OpenKey( 'Software\haslo' ,True);
Reg.WriteString('hasło', Edit1.Text);
Reg.WriteBool('wlaczone', true);
finally
Reg.Free;
begin
form1.show;
close;
end;
end;
- Na formie 2 tak odczytac hasło :
procedure TForm2.Button1Click(Sender: TObject);
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE:
try
Reg.OpenKey( 'Software\hasło' , False );
if Edit1.Text = Reg.ReadString( 'haslo' ) then
Form1.show
else
showmessage('zle haslo');
finally
Reg.Free;
end;
end;
PS. moze byc troche błedow - ale pisalem dosc szybko i nie sprawdzalem wszystkiego... Jak cos natomiast bedzie calkowicie zle to Napiszcie !!--Ozyrys Pozdrawiam {hello}
Delphi 6
Na stronie jest komponent do hashowania > jeśli chcesz zakodować hasło najpierw je przekstałć na hash'a i dopiero zapisz do rejestru.
przy odczycie musisz wpisane hało przekształcić na hash i porównać hash'e.
Ps: zamiast zmiennej boolean w rejestrze możesz sprawdzać po prostu czy wartość z hasłem (hash'em) istnieje--Sebo +)
(Delphi3)
Sebo napisał:
>Ps: zamiast zmiennej boolean w rejestrze możesz sprawdzać po prostu czy wartość z hasłem istnieje
racja racja...niepomyslalem o tym (pisalem dosc szybko) ale to tez ma swoje dobre strony :-)
--Ozyrys Pozdrawiam {hello}
Delphi 6