![]() |
Re: InstallExt installiert Dateierweiterung erst nach Neusta
Zitat:
PS: hier is z.B. der RealPlayer drauf, aber der gibt zumindestens vorher Bescheid, bevor er die Einträge wieder auf sich umschreibt PS2: es gbit ja auch noch andere Wege eine Datei zu verknüpfen (über OLE, oder so), aber ich dachte dafür wäre auch irgendein Eintrag dort nötig (das script hätte sowas dann demnach mit löschen müssen) |
Re: InstallExt installiert Dateierweiterung erst nach Neusta
Es ist doch noch nicht geschafft:
Wenn man z.B. OGG verknüpft, wird es dennoch mit dem DeliPlayerII geöffnet, da es auf diesen Player zugewiesen ist. Warum ? Das geht doch so nicht :( Add: Mir ist übrigens aufgefallen, dass es nur funktioniert, wenn die entsprechende Datei im gleichen Verzeichniss liegt. Sonst beendet sich das Programm. Das kann ebenfalls nur an der Registry liegen. |
Re: InstallExt installiert Dateierweiterung erst nach Neusta
Zitat:
Du kannst es ja mal ganz einfach testen. Erstmal versuchen das Programm per [win] > Ausführen, oder über 'ne BatchFile aufrufen (dort kannst du ja beliebig angeben wo sich was befinden soll. Und dann nimm z.B. dieses Progrämmchen, benenne es so wie deine EXE und stell es an deren Stelle.
Delphi-Quellcode:
Wenn dieses den richtigen Dateinamen incl. Verzeichnis und eine Erfolgreichmeldung anzeigt, dann gibt's mit ANSI keine Probleme.
Program Project2;
{$APPTYPE CONSOLE} Var F: File; Begin WriteLn('Datei: "' + ParamStr(1) + '"'); WriteLn; AssignFile(F, ParamStr(1)); FileMode := $0040{fmOpenRead or fmShareDenyNone}; {$I-} Reset(F); {$I+} If IOResult = 0 Then WriteLn('Datei erfolgreich ge”ffnet') Else WriteLn('Zugriffsfehler'); CloseFile(F); WriteLn; WriteLn('Beenden mit ENTER'); ReadLn; End. Ich vermute mal nicht, daß du nicht mit Unicode arbeitest, also sollte dieses ausreichend sein. Die " sind auch richtig gesetzt? Zur Sicherheit müssen ja alle Pfade/Dateien darin eingeschlossen sein. Umgebungsvariablen (sowas wie %WinDir%) hast du nicht verwendet? Weil dann wäre REG_SZ falsch. |
Re: InstallExt installiert Dateierweiterung erst nach Neusta
Zitat:
Delphi-Quellcode:
var ffile, FileType : String;
ArrayIndex : Integer; begin if (ParamCount > 0) and (FileExists(ParamStr(1))) then begin ffile := ExtractFileName(ParamStr(1)); FileType := LowerCase(Trim(ExtractFileExt(ParamStr(1)))); for ArrayIndex := 0 to 13 do if FileExt[ArrayIndex] = FileType then Break; if FileType <> '' then begin case ArrayIndex of // Audio/Video 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10: begin AddSingleFile(ffile); end; // Playlist 11: begin LoadFiles(LoadM3U(ffile); end; 12: begin LoadFiles(LoadASX(ffile); end; 13: begin LoadFiles(LoadDPL(ffile, nil)); end; end; end; end; |
Re: InstallExt installiert Dateierweiterung erst nach Neusta
also warum es nur im selben Verzeichnis geht ... dat is einfach zu erklären :stupid:
mit ffile := ExtractFileName(ParamStr(1)); entfernst du die Verzeichnisangabe, weßhalb z.B. AddSingleFile(ffile); nur den Dateinamen bekommt. Daher wird die Datei im aktuellen Arbeitsverzeichnis gesucht wird, was bei dir rein zufällig das Programmverzeichnis (muß es aber nicht). Ach ja, meckert Delphi bei dir nicht bei ArrayIndex? > Variable kann nach Schleifendurchlauf undefiniert sein, oder so
Delphi-Quellcode:
Die Exception könnte zwar irgendwie durch ArrayIndex (innerhalb des Case-Blocks) hervorgerufen werden, aber bei 'nem Integer un dieser unkion eigentlich nich möglich.
var FileType: String;
ArrayIndex: Integer; begin if (ParamCount = 0) or not FileExists(ParamStr(1)) then exit; FileType := LowerCase(Trim(ExtractFileExt(ParamStr(1)))); for ArrayIndex := 0 to 13 do if FileExt[ArrayIndex] = FileType then case ArrayIndex of // Playlist 11: LoadFiles(LoadM3U(ParamStr(1))); 12: LoadFiles(LoadASX(ParamStr(1))); 13: LoadFiles(LoadDPL(ParamStr(1), nil)); // Audio/Video else AddSingleFile(ParamStr(1)); end; end; Bleibt noch die Möglichkeit, daß die Exception in einer der verwendeten Funktionen/Prozeduren auftritt, z.B. wegen des fehlenden Pfades? > LoadM3U, LoadASX, LoadDPL, LoadFiles und/oder AddSingleFile hast schonmal das Programm im Debuger durchlaufen lassen? unter Menü > Start > Parameter... bei Parameter Zitat:
|
Re: InstallExt installiert Dateierweiterung erst nach Neusta
Es gab btw. keine Exeption, das Programm hat sich schon vorher freiwillig beendet :stupid: Werde den Fehler (ExtractFileName) beseitigen :stupid:
I am so :stupid: :stupid: :stupid: :mrgreen: Thx. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:51 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-2025 by Thomas Breitkreuz