Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Dateiendung registrieren (https://www.delphipraxis.net/32280-dateiendung-registrieren.html)

Alex_ITA01 21. Okt 2004 12:00


Dateiendung registrieren
 
Ich habe folgendes Problem:
Ich möchte "meine" Datei (aj-Datei) mit folgendem Source auf mein Programm registrieren.
Das geht ja auch...
Nur frage ich mich jetzt, wie die anderen Dateien (z.B. .MP3) registriert sind?!
Denn wenn ich in der Registry unter der Dateiendung MP3 suche finde ich den Ordner .MP3\Shell\Open\Command... nicht.
Ist das von Betriebssystem zu Betriebssystem anders oder gibt es noch ein anderen "Pfad" in der Registry, wo die Dateinamen registriert sind?
Denn wenn ich mein TuneUpUtilities starte (den RegistryCleaner) dann meckert der auch, dass der Pfad .aj\Shell\Open\Command... nicht korrekt ist und löscht ihn wieder.
Also wie gesagt, die Registrierung läuft zwar aber ich würde gerne wissen, wo man die Dateien genauso registriert wie es Windows auch macht.
Ich hoffe ihr wisst was ich meine...
Bis denn dann

MFG Alex

Delphi-Quellcode:
function TMain_Window.RegistriereAnwendung(extension, typename, commandKey, command : PChar) : boolean;
var
  key: HKey;
begin
  result := false;
  if RegCreateKey( HKEY_CLASSES_ROOT, extension, key )=ERROR_SUCCESS then
  begin
    if RegSetValue( key, nil, REG_SZ, typename, 0 )=ERROR_SUCCESS then
    begin
      RegCloseKey( key );
      if RegCreateKey( HKEY_CLASSES_ROOT, commandKey, key )=ERROR_SUCCESS then
      begin
        if RegSetValue( key, nil, REG_SZ, command, 0 )=ERROR_SUCCESS then
        begin
          RegCloseKey( key );
          result := true;   // hat geklappt
        end
        else
        begin
          RegCloseKey( key );
          RegDeleteKey( HKEY_CLASSES_ROOT, extension );
        end;
      end
      else
        RegDeleteKey( HKEY_CLASSES_ROOT, extension );
    end
    else
    begin
      RegCloseKey( key );
      RegDeleteKey( HKEY_CLASSES_ROOT, extension );
    end;
  end;
end;
Aufruf:
Delphi-Quellcode:
  FPfad                    := ExtractFileDir(Application.ExeName);
  tmpStr                   := FPfad + '\Player.exe %1';
  RegistriereAnwendung('.aj','Player','.aj\shell\open\command',PChar(tmpStr));

jim_raynor 21. Okt 2004 12:06

Re: Dateiendung registrieren
 
Im Schlüssel .(Endung) findest du einen Verweis auf den eignetlichen Dateitypen. (siehe den Standard-Wert). Lesen kannst du den Standardwert glaube mit ReadString('');

Wenn du also bei .mp3 schaust findest du etwas wie mp3file als Standard-Wert. Wenn du jetzt unter HKEY_CLASSES_ROOT/mp3file schaust findest du die entsprechende Informationen.

Genauso musst du es machen, wenn du einen neuen Dateitypen registrierst.
1. Schlüssel anlegen mit .(Endung)
2. Als Standardwert zum Beispiel (Endung)file setzen
3. Schlüssel anlegen mit dem unter 2. angegeben Namen
4. Schlüssel mit den entsprechenden Daten füllen.

Wenn das von Windows-Version zu Windows-Version unterschiedlich wäre, dann wäre es ja das reinste Chaos. :spin2:

Keldorn 21. Okt 2004 12:07

Re: Dateiendung registrieren
 
warum nicht die suchfunktion verwenden? Es gibt da einige Beiträge und Diskussionen, insbesondere von Matthias Simmack, die du alle mit der suche findest.

Mfg Frank

Alex_ITA01 21. Okt 2004 12:13

Re: Dateiendung registrieren
 
die suchfunktion habe ich genutzt und ich bin als erstes auch auf dieses beispiel gestoßen daher habe ich den neuen thread geöffnet.
Aber danke @jim_raynor das hört sich gut an und werde es auch mal probieren.

danke nochmals...
MFG Alex

himitsu 21. Okt 2004 12:45

Re: Dateiendung registrieren
 
Notfalls mal hier Dateiendungen registrierenDateiendungen registrieren reingucken ^^

Alex_ITA01 21. Okt 2004 12:52

Re: Dateiendung registrieren
 
danke himitsu
werde mich dann gleich mal damit beschäftigen
MFG Alex


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz