Umkehrung des ShellExecute Befehls - Dateien schließen
#1
Hallo Experten,

brauche dringend fachliche Hilfe.

Ich habe folgenden voll funktionierenden Code in mein Programm implementiert, mit dem (beispielhaft) eine Epub Datei geöffnet wird:


Code:
Option Explicit
Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
      (ByVal hwnd As Long, ByVal lpOperation As String, _
       ByVal lpFile As String, ByVal lpParameters As String, _
       ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Sub Test()

ShellExecute Application.hwnd, "Open", "C:\Verzeichnis\Datei.epub", _
            vbNullString, vbNullString, vbNormalFocus

End Sub

Ich bräuchte jetzt den Code dafür, wie man diese Datei wieder schließt. Bitte bedenkt, dass es sich bei diesen Vorgängen nicht
um Excel Dateien, sondern um beliebige andere Dateien handelt.
Top
#2
Geöffnete Dateien lassen sich einfach schließen, indem man das mit ihnen assozierte Anwendungsprogramm selbst schließt. Bei der
hier gestellten Frage mit epub-Dateien wäre dies z.B. Sigil.exe.  Durch folgenden Programmcode läßt sich die Aufgabe wie folgt
bewältigen:

Code:
Sub Dateischliessen()
Open "c:\Killer.cmd" For Output As #1
Print #1, "taskkill /f /im Sigil.exe" & vbNewLine & "Del Killer.cmd"
Close #1
ShellExecute Application.hwnd, "Open", "C:\Killer.cmd", vbNullString, vbNullString, vbNormalFocus
End Sub
Wie der Code offenbart, läßt sich die Aufgabe mit leichtester Modifikation auch für eine beliebige Anzahl anderer Dateitypen
parallel und individuell gestalten.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste