Einzelnen Beitrag anzeigen

Speeeedfreak

Registriert seit: 1. Mär 2008
14 Beiträge
 
#7

Re: Pfad + Datein. bekommen wenn Explorer Kontektmenü öffnet

  Alt 27. Sep 2009, 14:33
Moin ihr 2,
war die ganze Nacht vor meiner Kiste. Der Eintrag und das löschen von meinem Prg. im Kontektmenü ist
mittlerweile kein Problem mehr, aber dieser verdammte Pfad von den Files....

Ich mach´s kurz hier mein Code.... Bitte helft mir

Delphi-Quellcode:
function RegisterFileTypeCommand(fileExtension, menuItemText, target: string) : boolean;
var
  reg: TRegistry;
  fileType: string;
begin
  result := false;
  reg := TRegistry.Create;
  with reg do
  try
    RootKey := HKEY_CLASSES_ROOT;
    if OpenKey('.' + fileExtension, True) then
    begin
      fileType := ReadString('') ;
      if fileType = 'then
      begin
        fileType := fileExtension + 'file';
        WriteString('', fileType) ;
      end;
      CloseKey;
      if OpenKey(fileType + '\shell\' + menuItemText + '\command', True) then
      begin
        WriteString('', target +) ;
        CloseKey;
        result := true;
      end;
    end;
  finally
    Free;
  end;
end;

function UnRegisterFileTypeCommand(fileExtension, menuItemText: string) : boolean;
var
  reg: TRegistry;
  fileType: string;
begin
  result := false;
  reg := TRegistry.Create;
  with reg do
  try
    RootKey := HKEY_CLASSES_ROOT;
    if OpenKey('.' + fileExtension, True) then
    begin
      fileType := ReadString('') ;
      CloseKey;
    end;
    if OpenKey(fileType + '\shell', True) then
    begin
      DeleteKey(menuItemText) ;
      CloseKey;
      result := true;
    end;
  finally
    Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  //Registierung im Kontextmenü
  RegisterFileTypeCommand('pas','gMove ','E:\......meinePrg.exe') ;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  //Unregister
  UnRegisterFileTypeCommand('pas','gMove') ;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Filename : String;
begin
  // Filepath bekommen... :)
  if ParamCount = 1 then
    begin
      Filename := ParamStr(1);
      if FileExists(Filename) then
      showmessage(Filename);
    end;
  end;
end.
Oder muß ich "GetModuleFileName"-Methode in einer DLL benutzten....

Danke Speeeedfreak
  Mit Zitat antworten Zitat