Autor Beitrag
Christian V.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 311

Win Xp Prof
Turbo Delphi 2005
BeitragVerfasst: Di 22.02.05 10:30 
Hallo, ich bin einen Password Manager am Coden, und lege die neuen einträge in der Registry ab.
Ich habe 4 Felder, das einte ist der Titel, dann uname(für Username) pword(password) und description.

Beim ersten eintrag hänge ich jeweils _1 hintendran beim zweiten _2 usw. Und dann möchte ich diese einträge beim Start in eine Listbox laden, aber nur den Titel. Dafür habe ich wenn man das Programm das erste mal startet einen Integer-Schlüssel erstellt, wenn es kein Feld hat hat er den Wert 0, jedesmal wenn ein neus Feld kreiert wird, nimmt dieser um eins zu, so kann ich mit einer For-Schleife schön alle meine Einträge abrufen, und diese in eine Listbox speichern. jedoch klappt das nicht so ganz wie ich es mir vorstelle. Was mache ich falsch?
Code:
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:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, XPMan,Registry;

type
  TForm2 = class(TForm)
    itemlist: TListBox;
    uname: TLabeledEdit;
    pword: TLabeledEdit;
    new: TButton;
    XPManifest1: TXPManifest;
    procedure newClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure itemlistClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure itemlistDblClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  versch:boolean;
  reg:Tregistry;
  Form2: TForm2;
  endversch,anfang,pswdtext:string;
  I:integer;
implementation

uses new, pswd, bearbeiten;

{$R *.dfm}
function verschluesseln (anfang:string):string;
var
 s : string;
 i : Integer;
begin
 reg.OpenKey('\SOFTWARE\TopSecu\',false);
 If versch = true then
 begin
  s :=anfang;
  for i := 1 to length(s) do
   s[i] := char(strtoint(reg.ReadString('key_'+inttostr(i))) xor byte(s[i]));

  result := s;

 end else
 begin
  s := anfang;
  For i := 1 to length(s) do
   s[i] := char(strtoint(reg.ReadString('key_'+inttostr(i))) xor byte(s[i]));

  result := s;

 end;
end;

procedure TForm2.newClick(Sender: TObject);
begin
Form3.show;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin

Form1.Close;
end;

procedure TForm2.itemlistClick(Sender: TObject);
var
m:integer;
begin
reg:=Tregistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SOFTWARE\TopSecur',false);
firststart:=false;

anfang:=reg.ReadString('uname_'+inttostr(itemlist.ItemIndex+1));
uname.Text:=verschluesseln(anfang);

anfang:=reg.ReadString('pword_'+inttostr(itemlist.ItemIndex+1));
pword.Text:=verschluesseln(anfang);


reg.Free;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Form2.Width:=298;
reg:=Tregistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SOFTWARE\TopSecur',false);

For I:=reg.ReadInteger('HowMany'downto 0 do begin

   firststart:=false;
   anfang:=reg.ReadString('titel_'+inttostr(i));
   endversch:=verschluesseln(anfang);
   itemlist.Items.Add(endversch);
end;
reg.Free;
end;

procedure TForm2.itemlistDblClick(Sender: TObject);
begin
Form4.show;
end;

end.

Ach ja, jedes Feld wird verschlüsselt in der Regisry abgelegt, dazu werden beim ersten Start 256 Schlüssel in die Registry abgelegt, die einen zufälligen Wert haben.
www.vonrueti.ch/Passwd.rar
Ich freue mich auf Antworten.
Invulnerabilis


Zuletzt bearbeitet von Christian V. am Di 22.02.05 10:48, insgesamt 2-mal bearbeitet
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Di 22.02.05 10:33 
Hallo,

Bitte ändere den Titel des Topics da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Delphi-Forum.de Richtlinien:
Richtlinien:

1.1 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei deinem ersten Beitrag auf "Edit" klicken und den Titel ändern. Dank Dir!

Gruß,
raziel

_________________
JSXGraph
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 22.02.05 10:42 
Wenn du zum Beispiel mehr Informationen gibst.
Das:
Zitat:
jedoch klappt das nicht so ganz wie ich es mir vorstelle. Was mache ich falsch?

Ist zu wenig.
Wie stellst du dir das vor? Was klappt denn nicht?
Christian V. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 311

Win Xp Prof
Turbo Delphi 2005
BeitragVerfasst: Di 22.02.05 10:46 
Die For-Schleife mit der ich zu beginn die Registry auslesen will. DAmit das Programm verständlicher ist, musst du es dir vielleicht herunterladen und ausprobieren, am besten hältst du daneben die Registry offen, damit du siehst was passiert.
Christian V. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 311

Win Xp Prof
Turbo Delphi 2005
BeitragVerfasst: Di 22.02.05 11:31 
Ich habe das Problem gefunden, ich habe stat else begin nur else stehen gehabt, so hat er ein paar befehle immer ausgeführt, auch wenn ich nicht wollte.