AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Pfad + Datein. bekommen wenn Explorer Kontektmenü öffnet....
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Speeeedfreak · begonnen am 25. Sep 2009 · letzter Beitrag vom 27. Sep 2009
Antwort Antwort
Speeeedfreak

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

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

  Alt 25. Sep 2009, 19:22
Moin Moin,
schon mal Danke an alle hier vorab....
Ich habe eine Super Idee für ein Programm aber ziemlich große Probleme bei der Umsetzung.
Ich habe das Kontektmenü des Explorer mit meinem Programmeintrag erweitert Null-Problemo.
Nun möchte ich das wenn mein Programm aus dem Menü ausgewählt wird, jede Datei in jeden
beliebigen Ordner in einen frei wählbaren Ordner kopiert wird. Das kopieren ist nicht das
Problem sondern der Pfad + Dateiname sind das Problem. Habe den ganzen Tag schon gegoogelt
und nach allen möglichen gesucht. Selbst bei MSDN hab ich leider das passende nicht gefunden.

Aber es muß ja was geben die Viren & Firewallprogramme bekommen ja auch alles mit....

Vielen Dank noch mal an alle

cu Speeeedfreak

  Mit Zitat antworten Zitat
fatalerror
(Gast)

n/a Beiträge
 
#2

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

  Alt 26. Sep 2009, 13:08
Du erhältst doch den Pfad der ausgewählten Dateien über die ParamStr. D.h. welche Dateien du kopieren musst sind bei deinem Programmstart schon klar und das Ziel kannst du mit einer SelectDirectory Dialogbox abfragen. Der Rest ist nur noch kopieren der Dateien. Welchen Zusammenhang du da mit einem Virenschutzprogramm darstellst ist mir nicht ganz klar.
  Mit Zitat antworten Zitat
Speeeedfreak

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

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

  Alt 26. Sep 2009, 17:06
Moin fatalerror,
erst mal Danke für deine Hilfe....
Die Funktion ParamStr kenne ich, allerdings glaube ich, das ich mich vielleicht ein bißchen falsch ausgedrückt habe.
Ich habe mir keinen eigenen Explorer gebastelt, sondern ich benötige den Pfad und den Dateinamen direkt von Windows.
Mein Prg. könnte ja schon im Hintergrund laufen und beim anklicken meines Eintrags im Kontektmenü des Explorer
bräuchte ich dann irgendwie den Pfad + Dateinamen von mir aus auch in der Zwischenablage wär ja kein Ding.

Hab auch schon etwas gegoogelt aber schwer was raus zu finden. Vielleicht geht es mit der Windows Shell Extensions,
oder ich bin völligst auf dem falschen Weg gelandet.

Wenn ich dich jetzt natürlich falsch verstanden habe dann sorry..... oder hast du ein bißchen Code für mich.

Danke Speeeedfreak
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

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

  Alt 26. Sep 2009, 17:09
Guck dir mal die Unit1 im Verzeichnis ExifReaderEx von meinem ExifReader an: http://www.michael-puff.de/Developer/Delphi/Programme/
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Speeeedfreak

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

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

  Alt 26. Sep 2009, 17:25
Hi Luckie,
danke für die schnelle Hilfe werd gleich mal schaun

Danke Speeeedfreak
  Mit Zitat antworten Zitat
fatalerror
(Gast)

n/a Beiträge
 
#6

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

  Alt 26. Sep 2009, 20:18
Ich habe nie angenommen, dass Du einen eigenen Explorerersatz geschrieben hast.

Du hast dein Programm beim Explorer registriert. Nun beim Aufruf deines Programmes über das Kontextmenu startet der Explorer dein Programm und übergibt diesem Programm als Parameter den ausgewählten Dateinamen. Diesen findest du in paramstr. Dein Programm braucht also nicht dauernd im Hintergrund zu laufen.

So wie ich Luckies Beitrag verstanden habe, macht er genau das im FormCreate:

Luckies Code:

if ParamCount = 1 then
begin
Filename := ParamStr(1);
if FileExists(Filename) then
begin
..... hier kommt nun dein Code für das Kopieren der Datei(en)
  Mit Zitat antworten Zitat
Speeeedfreak

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

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

  Alt 27. Sep 2009, 13: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
Speeeedfreak

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

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

  Alt 27. Sep 2009, 16:32
Moin ihr 2,

mein Problem hat sich wie aus dem nix gelöst
Windows war der Fehler einmal neu gebootet ohne den SourceCode
zu verändern und dann sah ich ungefähr so aus....

Also fettes DANKE nochmal

LG Speeeedfreak
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:28 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