AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Prüfen, ob RegistryKey vorhanden ist?
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen, ob RegistryKey vorhanden ist?

Ein Thema von Jamah · begonnen am 1. Mai 2010 · letzter Beitrag vom 3. Mai 2010
Antwort Antwort
Seite 4 von 4   « Erste     234   
Jamah

Registriert seit: 2. Dez 2009
Ort: Nordhorn
74 Beiträge
 
RAD-Studio 2010 Arc
 
#31

Re: Prüfen, ob RegistryKey vorhanden ist?

  Alt 1. Mai 2010, 20:22
Wenn ich das in die erste Schleife baue, die als einzige nicht funktioniert, kommt: Das System kann die angegebene Datei nicht finden.

Aber irgendwie hab ich mich doch nicht vertippt. Ich habs nochmal von dem funktionierenden Teil mit Copy & Paste übernommen...
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#32

Re: Prüfen, ob RegistryKey vorhanden ist?

  Alt 1. Mai 2010, 20:47
Zeig den Source nun mal mit der Fehlerbehandlung und zeige mal genau wo der Fehler aufläuft
Lars
  Mit Zitat antworten Zitat
Jamah

Registriert seit: 2. Dez 2009
Ort: Nordhorn
74 Beiträge
 
RAD-Studio 2010 Arc
 
#33

Re: Prüfen, ob RegistryKey vorhanden ist?

  Alt 1. Mai 2010, 20:56
Delphi-Quellcode:
function RegCheck():Boolean;
begin
  result:= false;
  reg:= TRegistry.Create(Key_Read);
  try
    reg.RootKey:= (HKEY_LOCAL_MACHINE);
    try
    if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False) then
    begin
      if reg.ValueExists('KeyName') then
          begin
            Names:= ('HKEY_Local_Machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
            result:= True;
            x:= 1;
          end;
      end;
      if reg.LastError<>0 then
  begin
   ShowMessage(reg.LastErrorMsg);
  end;
      finally
        reg.CloseKey;
      end;
    reg.RootKey:= HKEY_Current_User;
    try
    if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False) then
    begin
      if reg.ValueExists('KeyName') then
          begin
            Names:= ('HKEY_Current_User\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
            result:= True;
            x:= 2;
          end;
    end;
    finally
      Reg.CloseKey;
    end;
  finally
     reg.Free;
  end;
end;
Die obere Schleife
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#34

Re: Prüfen, ob RegistryKey vorhanden ist?

  Alt 1. Mai 2010, 21:05
Aber wenn du per regedit guckst ist der Key da?
Lars
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#35

Re: Prüfen, ob RegistryKey vorhanden ist?

  Alt 1. Mai 2010, 21:38
Also bei mir funktioniert das so:

Delphi-Quellcode:
function RegCheck():Boolean;
begin
  result:= false;
  reg := TRegistry.Create(Key_Read);
  with reg do begin
    RootKey := HKEY_LOCAL_MACHINE;
    try
      if OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False) then
        if ValueExists('KeyName') then begin;
          ShowMessage('da');
          x := 1;
          //Names:= ('HKEY_Local_Machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
      end;
    finally
      CloseKey;
    end;

    RootKey := HKEY_CURRENT_USER;
    try
      if OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False) then
        if ValueExists('KeyName') then begin;
          ShowMessage('da');
          x := 2;
          //Names:= ('HKEY_Local_Machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
      end;
    finally
      CloseKey;
    end;

    Free
  end;
end;
Jetzt ist es deine Aufgabe das noch anzupassen, und Fehlerbehandlungsroutinen einzubauen.
Das weiß ich nicht genau, das ist Delphi unterschiedlich, und die Fehlerbehandlungen die Ihr verwendet gibt es bei meinem Delphi noch net.
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#36

Re: Prüfen, ob RegistryKey vorhanden ist?

  Alt 1. Mai 2010, 23:20
So geht's mit der Fehlerbehandlung:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Dialogs, Registry, SysUtils;

implementation

function RegCheck(): Boolean;
var
  reg: TRegistry;
  Names: string;
  x: Integer;
begin
  result := false;
  reg := TRegistry.Create(Key_Read);
  try
    reg.RootKey := (HKEY_LOCAL_MACHINE);
    try
      if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False) then
      begin
        if reg.ValueExists('KeyName') then
        begin
          Names := ('HKEY_Local_Machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
          result := True;
          x := 1;
        end;
      end
      else
        ShowMessage(SysErrorMessage(GetLastError));
    finally
      reg.CloseKey;
    end;
    reg.RootKey := HKEY_Current_User;
    try
      if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False) then
      begin
        if reg.ValueExists('KeyName') then
        begin
          Names := ('HKEY_Current_User\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
          result := True;
          x := 2;
        end;
      end
      else
        ShowMessage(SysErrorMessage(GetLastError));
    finally
      Reg.CloseKey;
    end;
  finally
    reg.Free;
  end;
end;

end.
Und hör bitte auf von Schleifen zu reden. In dem ganzen Code gibt es keine einzige Schleife. if-Bedingungen sind Verzweigungen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Jamah

Registriert seit: 2. Dez 2009
Ort: Nordhorn
74 Beiträge
 
RAD-Studio 2010 Arc
 
#37

Re: Prüfen, ob RegistryKey vorhanden ist?

  Alt 2. Mai 2010, 10:39
Okay.
Wenn ich dieses Else mit dem ShowMessage(SysErrorMessage(GetLastError))einbaue (obere verzweigung) dann kommt (Key vorhanden, wird aber nicht gefunden) erst: Das Fenster hat keine Bildlaufleisten! und dann Falscher Parameter. Also 2 ShowMessages.
Hilft das weiter?
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#38

Re: Prüfen, ob RegistryKey vorhanden ist?

  Alt 2. Mai 2010, 11:18
Welche Version benutzt du jetzt??
Die von Luckie hat bereits Fehlerbehandlungen mit eingebaut.

Vllt solltest du noch mal zeigen was genau du jetzt hast an, weil ich hab das gefühl so kommen wir hier nicht weiter
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Jamah

Registriert seit: 2. Dez 2009
Ort: Nordhorn
74 Beiträge
 
RAD-Studio 2010 Arc
 
#39

Re: Prüfen, ob RegistryKey vorhanden ist?

  Alt 2. Mai 2010, 12:06
Das kommt bei mir mit der Version von Luckie raus.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#40

Re: Prüfen, ob RegistryKey vorhanden ist?

  Alt 3. Mai 2010, 12:44
Das ist aber ein seltsames Verhalten.

Ich habe Lukies Version ausprobiert, und sie funktioniert fehlerfrei.
allerdings läuft reg.OpenKey vor die Wand, da ich nur Leserechte habe. Dafür gibt es ja auch reg.OpenKeyReadonly.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz