Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eigene Dateiendungen registrieren (https://www.delphipraxis.net/7405-eigene-dateiendungen-registrieren.html)

kaemmi 11. Aug 2003 15:14


Eigene Dateiendungen registrieren
 
Hallo

ich hab nach folgendem Thread meinem programm einen bestimmten dateityp zuweisen
mein programm in der registry registriert und will nun beim klick auf eine Datei mit der endung .ctf, dass mein programm sich öffnet und das ihm der Pfad der Datei übergeben wird.
soweit funzt das auch alles, nur das mir der Pfad nicht richtig übergeben wird. So wird aus
C:\Dokumente und Einstellungen\Kaemmi\Desktop\meinedatei.ctf
plötzlich
C:\Dokumente~1\Kaemmi\Desktop\meined~1.ctf
was meinem Programm natürlich nicht schmeckt, und dann folglich das laden verweigert.
wobei moch diese ...Dokumente~1... stark an WIN 3.1 erinnert mir nur 8 Zeichen pro Dateiname - ich dachte das gibts in XP nicht mehr :wiejetzt:
Was hab ich falsch gemacht :?

Hier noch mal der registry eintrag zum öffnen:
Pfad: HKEY_LOCAL_MACHINE/meintool/shell/open/command
Schlüssel: (Standart) - Wert:C:\Dokumente und Einstellungen\Kaemmi\Desktop\project1.exe %1

Das müsste richtig sein, den mit %1 wird ja der Pfad übergeben. :?: :?:

und mit
Delphi-Quellcode:
  if paramcount > 0 then
  begin
    Memo1.Lines.LoadFromFile(paramstr(1));
  end;
lese ich den Pfad aus.

Helft mir bitte - wenn mir noch zu helfen ist :D
Kaemmi

Chewie 11. Aug 2003 15:25

Re: Eigene Dateiendungen registrieren
 
Das mit dem 8.3-Format sollte nichts ausmachen, du solltest trotz diesem Format in der Lage sein, die Datei zu identfizieren.
Aber ändere mal den Standardwert in dem Registry-Schlüssel von C:\Dokumente und Einstellungen\Kaemmi\Desktop\project1.exe %1 zu "C:\Dokumente und Einstellungen\Kaemmi\Desktop\project1.exe" "%1"
So können auch Dateien mit Leerzeichen geladen werden.

kaemmi 11. Aug 2003 15:33

Re: Eigene Dateiendungen registrieren
 
wenn du mir sagen könntest, wie ich die datei trozdem laden könnte wäre ich dir sehr dankbar. :mrgreen:
den sache mit dem reg-schlüssel hab ich gleich umgesetzt. :coder:

Luckie 11. Aug 2003 19:19

Re: Eigene Dateiendungen registrieren
 
Probier mal den Code:
Delphi-Quellcode:
uses ComObj;
const
  Extension = '.ella';
  Schluessel = 'Ellabetsch'; // Luckie? 
  Beschreibung = 'Irgendwas';
var
  Anwendung : string;
procedure TForm1.RegisterButtonClick(Sender: TObject);
begin
  Anwendung := '"' + paramstr(0) + '" "%1"';
  try
    CreateRegKey(Extension,'',Schluessel);
    CreateRegKey(Schluessel,'',Beschreibung);
    CreateRegKey(Schluessel + '\shell\open\command','',Anwendung);
  except
    on EOleRegistrationError do
    ShowMessage('Mist! Hat nicht geklappt');
  end;
end;
procedure TForm1.UnregisterButtonClick(Sender: TObject);
begin
  try
    DeleteRegKey(Extension);
    DeleteRegKey(Schluessel);
  except
  end;
end;

kaemmi 12. Aug 2003 07:43

Re: Eigene Dateiendungen registrieren
 
:dancer: JIPI :dancer:
es funzt. danke luckie.
der Dateiname wird jetzt komplett übergeben!
Ich dachte schon ich kriegs nie hin.
dann kann ich ja jetzt weiter machen :coder:

gibts vielleicht noch ne möglichkeit eine icon über diese funktion zu registrieren?

CU, Kaemmi :hello:

negaH 12. Aug 2003 12:38

Re: Eigene Dateiendungen registrieren
 
Zitat:

[REGISTRY]\???\DefaultIcon\ModulName,IconNummer
Im selben Registrypfad in dem dein Shell\Command usw. steht muß ein Key wie der obige stehen. Als Wert wird der Pfad zu deine EXE + die Symbolnummer des Icons aus dieser EXE gesetzt.

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 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