Prüfen ob eine Datei geöffnet ist

  • Hallo Leute,

    ich war auf der suche nach einer Lösung zur Überprüfung, ob eine Datei geöffnet wurde.
    Dabei kam ich bei :

    cmd openfiles an

    Allerdings dauert der Ausleseprozess in cmd ziemlich lange und benötigt zudem auch noch Adminrechte, was das ganze leider ziemlich unbrauchbar macht.

    Schließlich stieß ich dann auf diesen Code:

    Leider hab ich das Gefühl, dass der Code nicht wirklich funktionert, denn wenn ich hier per IF-Else-Abfrage abfrage, ob eine bestimmte Datei geöffnet ist, bekomme zu aller erst gesagt, dass $iAccess zuvor nicht deklariert wurde, bzw erhalte ich immer die Info, dass die gesuchte Datei geöffnet ist, egal ob dies zutrifft oder nicht.

    Vielleicht kann mich jemand aufklären, an welcher Stelle mein Kopf gerade quer steht :)


    Euer,
    MadCatz

  • Damit es überhaupt klappen kann muß Parameter 1 verwendet werden. Klappt aber bei meinen Tests auch nicht, Datei wird als geöffnet gemeldet egal ob geöffnet oder nicht.

    Code
    $sFilename="C:\Program Files\AutoIt3\Examples\Helpfile\Extras\_Excel2.txt"
    $pid=ShellExecute($sFilename)
    MsgBox(0,'Test (1)',_FileInUse($sFilename,1))
    ProcessClose($pid)
    Sleep(5000)
    MsgBox(0,'Test (0)',_FileInUse($sFilename,1))

    Edit: Diese Lösung:

    hat die Tests für offene Worddokumente bestanden. Bei in NotePad geöffneten Dateien versagt es aber auch.

    5 Mal editiert, zuletzt von autoBert (21. Februar 2016 um 03:32)

  • hat die Tests für offene Worddokumente bestanden. Bei in NotePad geöffneten Dateien versagt es aber auch.

    Nun ohne es genau zu wissen könnte ich mir vorstellen, dass Notepad die Datei nicht sperrt bzw. geöffnet hält, sondern lediglich einmalig einliest und die Datei dann bis zum Speichervorgang geschlossen lässt. Eine Prüfung ob die Datei von einem Programm "geöffnet" ist und bearbeitet wird ist in solch einem Fall jedenfalls nicht möglich. Daher wäre es vielleicht noch interessant was genau der TE mit der Prüfung überhaupt sicherstellen möchte.

  • Nun ohne es genau zu wissen könnte ich mir vorstellen, dass Notepad die Datei nicht sperrt bzw. geöffnet hält, sondern lediglich einmalig einliest und die Datei dann bis zum Speichervorgang geschlossen lässt. Eine Prüfung ob die Datei von einem Programm "geöffnet" ist und bearbeitet wird ist in solch einem Fall jedenfalls nicht möglich. Daher wäre es vielleicht noch interessant was genau der TE mit der Prüfung überhaupt sicherstellen möchte.


    Geht überwiegend um PDF, Word, Excel, Powerpoint Dateien, daher ist es kein Problem, dass Notepad nicht klappt ^^