| Autor |
Beitrag |
Jogi2005
Hält's aus hier
Beiträge: 7
|
Verfasst: Do 04.08.05 12:11
Hi
Im Windowsexplorer kann ich eine Datei ja über "Öffnen" bzw. "Öffnen mit" von einem anderen Programm öffnen lassen. Gibt es in Delphi einen Befehl wie ich eine Datei von einem anderen Programm wie im Explorer öffnen lassen kann und danach auch noch merke wenn die Datei wieder (von dem Programm) geschlossen wird.Bin für jede Hilfe dankbar.
mfg
|
|
Sprint
      
Beiträge: 849
|
Verfasst: Do 04.08.05 12:36
Delphi-Quelltext
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| function ExecuteFile(const FileName: String): Boolean; var AppName: array[0..MAX_PATH-1] of Char; SI: TStartupInfo; PI: TProcessInformation; begin
Result := False; if FindExecutable(PChar(FileName), nil, AppName) > 32 then begin FillChar(SI, SizeOf(TStartupInfo), 0); SI.cb := SizeOf(TStartupInfo); if CreateProcess(AppName, PChar(FileName), nil, nil, False, 0, nil, nil, SI, PI) then begin WaitForSingleObject(PI.hProcess, INFINITE); CloseHandle(PI.hProcess); CloseHandle(PI.hThread); Result := True; end; end;
end; |
_________________ Ciao, Sprint.
|
|
Jogi2005 
Hält's aus hier
Beiträge: 7
|
Verfasst: Do 04.08.05 12:50
Titel: Funktioniert nicht so richtig??
Hi
hab den Quelltext in mein Programm eingebaut. Das entsprechende Programm zu einem Document wurde auch geöffnet leider jedoch ohne das Document mitzuöffnen??? Wie kann man den erreichen das der "Öffnen mit..." Dialog von Windows erscheint und ich das Programm mit dem das Document geöffnet werden soll sich auswählen lässt?
mfg
|
|
Jogi2005 
Hält's aus hier
Beiträge: 7
|
Verfasst: Do 04.08.05 13:44
Titel: Erste Lösung gefunden Problem falls Datei wieder geschlossen
Hi
hab Lösung für "Öffnen" bzw. "Öffnen mit..."
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure OpenWith(FileName: string); begin ShellExecute(Application.Handle, 'open', PChar('rundll32.exe'), PChar('shell32.dll,OpenAs_RunDLL ' + FileName), nil, SW_SHOWNORMAL); end;
procedure OpenNormal(FileName: string); begin ShellExecute(Application.Handle, 'open', PCHAR(FileName), nil, nil, SW_SHOWNORMAL); end; |
Wie kann ich jedoch mit meinem Programm erkennen ab wann die geöffneten Dateien wieder geschlossen werden???
mfg
Moderiert von AXMD: Delphi-Tags hinzugefügt.
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Do 04.08.05 21:04
Indem du deinen Code mit dem von Sprint kombinierst, was nicht so schwierig sein sollte und durchaus in maximal zehn Minuten machbar ist
Gruß,
maxk
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
Jogi2005 
Hält's aus hier
Beiträge: 7
|
Verfasst: Fr 05.08.05 13:22
Titel: Kannst du mir sagen wie das mit dem kombinieren geht???
Hi
Vielen Dank schonmal für eure Hilfe. Kannst du mir sagen wie das mit dem kombinieren geht. Bin nämlich mit dem Umwang der Win32 Funktionen nicht so erfahren und weiss nicht wie man z.B. die Funktion WaitForSingleObject auf die ShellExecute anwendet, dass es für "Öffnen" und "Öffnen mit..." klappt.
mfg
|
|
Sprint
      
Beiträge: 849
|
Verfasst: Sa 06.08.05 00:49
Geht nicht mit ShellExecute. Aber mit ShellExecuteEx und CreateProcess.
_________________ Ciao, Sprint.
|
|