Fileviewer, Vorgehensweise windowsseitig
Ahoi!
Ich baue in einer Anwendung, die Dateien in einer DB speichert, einen Dateibetrachter. Ablauf soll sein: 1) User klickt auf Eintrag im DBGrid 2) Datei wird unter ihrem ursprünglichen Namen im Windows-Temp Ordner erstellt 3) Diese Datei soll mit dem ihrem Typ zugeordneten Standardprogramm geöffnet werden 4) Sobald dieses geschlossen wird, Temp-File löschen Die Punkte 3 und 4 sind mir noch nicht ganz klar. Mit ShellExecute kann ich problemlos die Dateien so öffnen, und bekomme ein hInstance zurück. Ich war aber in meiner Suche im MSDN nicht erfolgreich, eine Methode zu finden, mit der ich via dieses Handles nachschauen kann, ob der Prozess noch läuft. Noch lieber hätte ich ja eine Message oder einen Callback wenn der Prozess geschlossen wird, aber das ist fürchte ich eher Utopie das als vorhandene Möglichkeit zu vermuten. Bei CreateProcess bekomme ich ein paar mehr Dinge als dieses eine Hanlde an die Hand, konnte mir aber keinen Reim darauf machen, wie ich damit ein non-Executable mit seiner Standardassoziation öffne. Wichtig ist halt, dass ich irgendwie mitbekomme, wann das so geöffnete Programm wieder geschlossen wird. Ich vermute nämlich mal nicht, dass es gängige Praxis ist, seine Temp-Files einfach liegen zu lassen =) Sowas hat doch bestimmt einer von euch schon mal gebaut, und kann mir nen heissen Tipp geben! Danke schon mal im Voraus, Medium |
AW: Fileviewer, Vorgehensweise windowsseitig
Du könntest das Standartprogramm über die Registry auslesen
|
AW: Fileviewer, Vorgehensweise windowsseitig
Oder per FindExecutable.
|
AW: Fileviewer, Vorgehensweise windowsseitig
Gibt es unter Windows 7 noch die Wininit.ini?
Wenn ja, dort ein "NUL=c:\temp\meinedateim.tmp" rein und die temporäre Datei wird beim nächsten Boot gelöscht. PS zu 3): Bei ShellExecute reicht es ja, wenn die (temporäre) Datei die richtige Dateiendung hat. Dann wird bei Aufruf der Datei automatisch die verknüpfte Anwendung ausgeführt bzw. wenn es keine Verknüpfung gibt, der Auswahldialog angezeigt. |
AW: Fileviewer, Vorgehensweise windowsseitig
|
AW: Fileviewer, Vorgehensweise windowsseitig
Was ist, wenn der gestartete Prozess die Datei selbst wieder an einen anderen Prozess weitergibt und sich beendet? (Also z.B. soffice.exe -> writer.exe)
Bin mir nicht sicher, ob sowas oft vorkommt, aber könnte eine unklare Situation entstehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz