Entwickler-Ecke

Dateizugriff - Problem bei TRegestry


Anonymous - Do 12.12.02 22:25
Titel: Problem bei TRegestry
Vorgestern hat mir rolf einen tipp gegeben:der quellcode lautet so:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.FormCreate(Sender: TObject);
var
reg: TRegistry;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', true);
  reg.WriteString('DefaultUserName','Administrator');
  reg.WriteString('DefaultDomainName',Keller);
  reg.WriteString('AutoAdminLogon','1');
  reg.WriteString('DefaultPassword','keller');
  reg.WriteString('DontDisplayLastUserName','0');
  reg.CloseKey;
  reg.Free;
end;

aber jedesmal schreibt der compiler:
Zitat:
Undiclared identifier: TRegestry Missing operator or semicolon


(13.12. 08:40 Tino) Code-Tags hinzugefügt & Topic verschoben.


BungeeBug - Do 12.12.02 23:13

der trick is das du

Quelltext
1:
2:
3:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Registry;

das warscheinlich NICHT so hast ... du musst das Registry hinzufügen damit das teil benutzten kannst ... und dann wirst du noch fesst stellen das da noch mehr fehler drin sind die aber leicht zubeheben sind ...

MfG BungeeBug


Delete - Fr 13.12.02 02:57

Wie sieht es mit den Ressourcen-Schutz aus? :roll:


Tino - Fr 13.12.02 09:39

Luckie hat folgendes geschrieben:
Wie sieht es mit den Ressourcen-Schutz aus? :roll:

mmmm... überleg.... keine Ahnung! Sags uns!


Andreas.Schmid - Mi 18.12.02 13:55

Hallo Deft,

also bei mir funktioniert dein Quellcode einwandfrei.
Ich hab Delphi 6 und Windows 2000.



Ich glaube, dass er meint, dass man in der Registry nicht einfach irgendwelche Wert ändern sollte, ohne eine Sicherung der alter Werte zu erstellen oder sogar eine Sicherung der ganzen Registry.

Leg doch einfach ein Backup_"WertName" für die alten Werte!!! :)


LCS - Mi 18.12.02 14:02

Wie ich Luckie kenne :mrgreen: meint er wohl eher das hier:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
  reg := TRegistry.Create; 
  try
    reg.RootKey := HKEY_LOCAL_MACHINE; 
    if reg.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', true) then begin
      reg.WriteString('DefaultUserName','Administrator'); 
      reg.WriteString('DefaultDomainName',Keller); 
      reg.WriteString('AutoAdminLogon','1'); 
      reg.WriteString('DefaultPassword','keller'); 
      reg.WriteString('DontDisplayLastUserName','0'); 
      reg.CloseKey; 
    end;
  finally
    reg.Free; 
  end;


Gruss Lothar


Delete - Mi 18.12.02 14:36

Andreas.Schmid: "6, Setzen".
LCS: "Sehr gut, eins."


Delete - Mi 18.12.02 16:03

So, jetzt ich:
Delphi Hilfe hat folgendes geschrieben:
Wenn die Ausführung von WriteString fehlschlägt, wird eine Exception ausgelöst, und der Wert gelangt nicht in die Registrierung.

Also, total übertrieben (mache ich eigentlich auch nie), aber egal :wink:

Quelltext
1:
2:
3:
4:
5:
6:
if reg.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', true) then
  try
    { ... }
  finally
    reg.CloseKey;
  end;

Welche Note? Welche Note? :mrgreen:


Andreas.Schmid - Mi 18.12.02 16:09

Trotzdem hab ich recht, dass man nicht einfach in der Registry "rumpfuschen" sollte

:P


bis11 - Mi 18.12.02 17:09

Diese Werte kann ich bedenkenlos ändern, denn wenn ich einen Usernamen eingebe, der auf dem Rechner nicht im Benutzermanager drin ist, so wird mir eine Fehlermeldung ausgegeben und es wird dann die Anmeldemaske angezeigt.