Autor Beitrag
ECO
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 18


D7 Personal
BeitragVerfasst: Do 11.11.04 22:54 
Hallo zusammen!!
Habe ein Prog gecodet um Menü einträge im Win Explorer zu machen.
Hier erstmal die 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:
var
  Form1: TForm1;
 E1,E2,E3: string;
 reg: TRegistry;
 typ: string;

implementation

uses Info2;

{$R *.dfm}
procedure AddFileMenue(FilePrefix, Menue, Command: string);
begin 
  reg := TRegistry.Create; 
  with reg do 
  begin
    RootKey := HKEY_CLASSES_ROOT; 
    OpenKey('.' + FilePrefix, True);
    typ := ReadString('');
    if typ = '' then
    begin
      typ := Fileprefix + 'file';
      WriteString('', typ);
     if reg.KeyExists('typ') = TRUE then ShowMessage ('OK')
    end;
    CloseKey;
    OpenKey(typ + '\shell\' + Menue + '\command', True);

    WriteString('', command + ' "%1"'); 
    CloseKey; 
    Free; 
  end
end;

procedure DeleteFileMenue(Fileprefix, Menue: string);
begin
  reg := TRegistry.Create;
  with reg do 
  begin 
    RootKey := HKEY_CLASSES_ROOT; 
    OpenKey('.' + Fileprefix, True); 
    typ := ReadString(''); 
    CloseKey;
    OpenKey(typ + '\shell', True);
    DeleteKey(Menue); 
    CloseKey;
    Free;
  end;
end
procedure TForm1.Button1Click(Sender: TObject);
begin
AddFileMenue (E3.Text  E2.Text , E1.Text);


So nun meine Frage möchte das nach dem AddFile überprüft wird ober der eintrag exitiert.
Und dann eine Message Box erscheint ('OK')
else fehler
Habe schon mit if reg.KeyExists oder if reg.ValueExists versucht aber ich wiéiß nicht
wie ich das mit den Edit mache.
Danke im vorauß
ECO

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 12.11.04 08:24 
Du "wurschtelst" ganz schön in der Registry rum. Was machst du denn, wenn du mal einen bereits vorhandenen Eintrag erweitern möchtest, dessen interner Name (bei dir die Variable "typ") nicht aus der Dateiendung und dem Anhängsel "file" zusammengesetzt ist?

Um deine Frage zu beantworten: "KeyExists" bzw. "ValueExists" ist schon richtig. Wo du ein Problem mit den Edits hast, weiß ich jetzt nicht. :gruebel: Wenn du "KeyExists" verwenden willst, musst überprüfen ob der Schlüssel existiert. Und da du die Einzelteile ja bereits in der Funktion als Parameter übergibst, wird es doch wohl kein Problem sein, daraus noch mal den Schlüssel zusammenzubauen? Das gleiche gilt für den Wert "Command", den du vermutlich mit "ValueExists" prüfen möchtest.

Ansonsten, kurz und schmerzlos: TFileTypeRegistration (Dateityp registrieren)