| Autor |
Beitrag |
DaClown
      
Beiträge: 68
|
Verfasst: Fr 14.11.03 15:39
Wie öffne ich eine Datei (log.log) mit dem Standardeditor von Windows, also so als wenn man es bei Cmd ausführt und Windows die Zuordnung übernimmt? Dies ist wichtig weil unter WinME der Editor notepad.exe und unter XP editor.exe heißt, oder vielleicht ein anderes Programm Standard ist.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 14.11.03 15:50
Ihr für Sie zuständiger Operator verweist Sie auf SHELLEXECUTE mit dem Hinweis auf das zu benutzende Verb (2. Parameter des genannten Befehls) "open".
|
|
DaClown 
      
Beiträge: 68
|
Verfasst: Fr 14.11.03 21:59
Delphi-Quelltext 1:
| ShellExecute(0,'open','','log.log','',0); | So gehts nicht,
ShellExecute(0,'open','log.log','','',0); so auch nicht.
Auch wenn ich ein pchar um das log.log gehts nicht, auch nicht wenn ich statt '' ein nil schreibe. Nur falls nicht klar wurde was ich machen will: Ich will das ich mit Delphi ohne Angabe des Programms eine Datei öffnen kann, so als wenn ich im Explorer auf sie klicke und Windows dann das Programm wählt mit dem es geöffnet wird.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 14.11.03 22:03
Sind Dateien mit der Endung "log" auch mit dem Notepad verknüpft? Sprich, öffnet sich das Notepad, wenn du im Explorer eien log-Datei anklickst?
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 14.11.03 22:08
Der erste Aufruf kann nicht funktionieren, weil du den Dateinamen an der Stelle angegeben hast, der für Parameter zuständig ist.
Und der zweite Aufruf würde sicher funktionieren, wenn du den Pfad zur Datei mal mit angibst. Die andere Sache ist, dass es möglicherweise auch ohne den Pfad klappt, nur siehst du nichts davon, weil die Null an letzter Stelle für SW_HIDE steht.
Aus eben diesem Grund benutzt jeder halbwegs vernünftige Programmierer die Konstanten, weil solche Pannen dann nicht entstehen können.
|
|
DaClown 
      
Beiträge: 68
|
Verfasst: Fr 14.11.03 22:27
Bei mir ist .log mit Textpad verknüpft, ich denke aber das .log normal mit Notepad geöffnet wird.
Und wegen dem SW_HIDE, ich probiers mal mit 1 (oder SW_show?).
|
|
DaClown 
      
Beiträge: 68
|
Verfasst: Fr 14.11.03 22:35
So gehts aber auch nicht ...
Delphi-Quelltext 1:
| ShellExecute(0,'open',pchar(ExtractFilePath(Paramstr(0))+'log.log'),nil,nil,SW_SHOW); |
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 14.11.03 22:53
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin ShellExecute(0,'open',pchar(ExtractFilePath(Paramstr(0))+'log.log'),nil,nil,SW_SHOW); end; |
Tut es wunderbar, wenn die Log-Datei im Proghrammverzeichnis liegt und Log-Dateien mit einem Editor verknüpft sind.
Lass die mal den Rückgabewert von Shellexecute anzeigen und Ruf mal RaiseLastOSError auf.
|
|
DaClown 
      
Beiträge: 68
|
Verfasst: Sa 15.11.03 02:51
Der Rückgabewert von ShellExecute ist 31, und RaiseLastOSError ergibt: Project DaDirectoryCleaner.exe raides exception class EOSError with message 'A call to an OS function failed' ...'
Kann es vielleicht daran liegen das das Unterverzeichnis mehr als 8 Buchstaben hat, oder die .pas nicht in dem Verzeichnis liegt ??
Meine .log s sind mit Textpad verknüpft, irgendwie seltsam oder ??
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 15.11.03 05:37
Na bitte da haben wir es doch:
| PSDK hat folgendes geschrieben: |
31 = SE_ERR_NOASSOC = There is no application associated with the given file name extension.
|
Deinbe log-Datei ist mit keinem Programm verknüpft. Und GetLastError läßt auch daruf schkießen.Gib mal als Programm Notepad und als Parameter die Datei sammt Pfand an. Dann sollte es gehen.
|
|
DaClown 
      
Beiträge: 68
|
Verfasst: Sa 15.11.03 11:14
Irgendwie seltsam, ich hab gestern auch noch auf einem anderen Computer probiert, und da gehts und er benutzt den Editor ... hat Windows auf meinem Laptop wohl mal wieder sch**ss* gebaut, denn wenn ich im cmd in dem Verzeichnis bin und einfach log.log ausführe, nimmt er welches Programm ich auch eingestellt habe zum öffnen, Delphi will aber beides nicht, notepad oder textpad seltsam ...
Danke für deine Hilfe
|
|
DaClown 
      
Beiträge: 68
|
Verfasst: Sa 15.11.03 13:18
Falls euch das Ergebnis des ganzen interessiert : daclown.de.vu/DaDirectoryCleaner.rar
|
|