dateien öffnen mit eigenem editor
-
Hallo
dann mußt du nochmal deine Registry-Einträge überprüfen.
Der C++ Code ist jedenfalls in Ordnung.bis bald
akari
-
Hallo,
Hast du eigentlich mal daran gedacht, wass passiert wenn du versuchen würdest z.B. folgende Datei zu öffnen:
C:\Dokumente und Einstellungen\BenutzerXY\Desktop\Dokument von mir.txt
...?Deine Routine solltest du dringend mal überarbeiten!
-
Hallo
@Reyx : diese Routine stammt direkt aus der FAQ und sollte ok sein.
In ParamStr[1] steht der Dateiname mit kompletten absoluten Pfad.
Die Fehlermeldung kommt eindeutig von der Windows-Shell.bis bald
akari
-
Enthält dein Dateiname zufällig ein Leerzeichen?
-
WebFritzi schrieb:
Enthält dein Dateiname zufällig ein Leerzeichen?
Genau dass, was ich gemeint habe: ParamStr(1) liefert eben nur den ersten Parameter, bei Leerzeichen wird der Pfad zerstückelt!
EDIT: Die Meldung selbst kommt aber meiner Meinung nach wirklich von der Shell, da ja sonst dass Programm einen Fehler melden würde (nach dem Motto: "C:\XYZ ist keine gültige Datei).
-
Ist dein Registry-Eintrag auch in einem solchen Format (auf die Anführungszeichen achten!):
"C:\Programme\Pfad Mit Leerzeichen\Programm.exe" "%1"Durch die Doublequotes werden die Parameter voneinander getrennt.
-
Reyx schrieb:
Genau dass, was ich gemeint habe: ParamStr(1) liefert eben nur den ersten Parameter, bei Leerzeichen wird der Pfad zerstückelt!
Das ist unzutreffend, Pfade mit Leerzeichen werden bei der Übergabe automatisch in Anführungszeichen eingefasst. Lass dir ParamStr(1) einfach mal ausgeben.
-
wie würde denn euer quellcode fü die registry aussehen? bin ein ziemlicher neuling vll. is mein quellode ja total falsch...
-
Jansen schrieb:
Pfade mit Leerzeichen werden bei der Übergabe automatisch in Anführungszeichen eingefasst.
In welchem Fall? Ich hatte schon genügend Misserfolge auf diesem Gebiet. IMHO ist es tatsächlich von den Einstellungen in der Registry abhängig.
@bobban: Zeige doch mal deinen Code her.
-
//--------------------------------------------------------------------------- void __fastcall TForm_texteditor::FormCreate(TObject *Sender) { if (ParamStr(1) != ""){ TRegistry *reg = new TRegistry(); try { reg -> RootKey = HKEY_CLASSES_ROOT; reg -> WriteString(.txt, bobbantxt); reg -> WriteString(bobbantxt, bobbantextfile); reg -> WriteString(bobbantxt\DEFAULTICON, "Projekt_texteditor.exe, 0"); reg -> WriteString(bobbantxt\SHELL\OPEN\COMMAND, "Projekt_texteditor.exe %1"); } __finally { delete reg; } RichEdit_texteditor->Lines->LoadFromFile(ParamStr(1)); } } //---------------------------------------------------------------------------
-
Ähmm... sicher, dass er das überhaupt kompiliert? Ich würde dir eher empfehlen, nochmal ein wenig in der Hilfe zu TRegistry zu schmökern.
Ansonsten kann man doch sehr schön erkennen, warum es nicht funktioniert. Programmname und Parameter werden nicht von Anführungszeichen eingefasst.
-
ne der funktioniert auch net
ich steige da voll net durch... brauche hilfe
-
kann dir da auch net weiter helfen... aber pass auf bei der arbeit mit der registry!!
-
wenn du wirklich die registry zu müllen willst, schau mal in den bcb-tut dort findest du alles was du brauchst..