Hallo,
ich suche ein Script welches in einer 10 Minuten Schleife einen Ordner (z.B. C:\PDF\) mit pdf Dateien durchsucht und immer die neueste Datei öffnet.
Kann mir da wer helfen?
Suche Code zum Datei öffnen in einer Schleife Topic is solved
Moderator: jNizM
Re: Suche Code zum Datei öffnen in einer Schleife
Code: Select all
#SingleInstance, Force
#Persistent
fExt := "pdf"
srcPath := "C:\PDF"
prevFile := ""
SetTimer, EarlyAdopter,% 10*60*1000 ; zeit ist in ms anzugeben
Return
EarlyAdopter:
Loop, Files,% srcPath "\*." fExt ; verzeichnis nach pdfs durchsuchen
file := A_LoopFileName ; es wird nur der zuletzt ermittelte dateinamen erfasst (die vorliegende sortierung wäre hierbei nicht beachtet)
If (file = prevFile) ; hatten wir die datei das letzte mal bereits ermittelt?
Return ; Falls ja - zurück auf los.
Else ; ansonsten ...
Run,% srcPath "\" file ; Anzeige!
prevFile := file ; festhalten des ermittelten dateinamen zum vergleich beim nächsten durchlauf.
Return
Korrektur: Loop, File, ... zu Loop, Files, ...
Korrektur: prevFile = file zu prevFile := file (mercy just me )
Last edited by BoBo on 12 Jul 2017, 05:35, edited 4 times in total.
Re: Suche Code zum Datei öffnen in einer Schleife
Hallo, danke für die Antwort, leider bekomme ich noch einen Fehler.
Error: Target label does not exist
In der Zeile mit SetTimer.
Error: Target label does not exist
In der Zeile mit SetTimer.
Re: Suche Code zum Datei öffnen in einer Schleife
Kann eigentlich nicht sein, wenn Du das Skript 1:1 übernommen hast. Das Label 'EarlyAdopter' aus dem SetTimer-Befehl ist eindeutig vorhanden in dem Beispielskript oben (direkt unter dem folgenden 'Return'; ggf in der Codebox weiter runterscrollen). Überprüfe bitte nochmal dein Skript.Rasgoth wrote:Hallo, danke für die Antwort, leider bekomme ich noch einen Fehler.
Error: Target label does not exist
In der Zeile mit SetTimer.
Re: Suche Code zum Datei öffnen in einer Schleife
Fehler ist weg, leider funktioniert das Script noch nicht, habe im Ordner 1 pdf File. Ich starte das Script, kopiere eine neue pdf in den Ordner, diese wird mir leider nicht geöffnet.
Re: Suche Code zum Datei öffnen in einer Schleife
Moin,
wird 10 Minuten nach dem Start des Skripts überhaupt eine Datei geöffnet?
Du solltest noch etwas genauer festlegen, was das Skript tun soll.
wird 10 Minuten nach dem Start des Skripts überhaupt eine Datei geöffnet?
Du solltest noch etwas genauer festlegen, was das Skript tun soll.
- Was soll beim Start des Skripts geschehen?
- Was soll das Skript tun, wenn sich beim Start des Skripts bereits mehrere PDF-Dateien im Ordner befinden?
- Nach welchen Kriterien soll das Skript die jeweils 'neueste' Datei bestimmen?
Re: Suche Code zum Datei öffnen in einer Schleife
Ich Versuche das nochmal genauer zu erklären,
Beim Start des Scripts hat man einen leeren Ordner C:\PDF
Ich stelle ein pdf in den Ordner
Das pdf geht automatisch auf und wird mir auf dem Bildschirm angezeigt
Ich schließe das pdf
Das pdf wird automatisch gelöscht
Ich stelle ein neues pdf in den Ordner
und alles wieder von vorne
Wäre Super wenn das auch ohne eine Zeitschleife funktioniert, das der Odner immer überwacht wird ob eine neue pdf drin ist und diese automatisch geöffnet wird und die alte Löscht.
Beim Start des Scripts hat man einen leeren Ordner C:\PDF
Ich stelle ein pdf in den Ordner
Das pdf geht automatisch auf und wird mir auf dem Bildschirm angezeigt
Ich schließe das pdf
Das pdf wird automatisch gelöscht
Ich stelle ein neues pdf in den Ordner
und alles wieder von vorne
Wäre Super wenn das auch ohne eine Zeitschleife funktioniert, das der Odner immer überwacht wird ob eine neue pdf drin ist und diese automatisch geöffnet wird und die alte Löscht.
Re: Suche Code zum Datei öffnen in einer Schleife
Für das Überwachen von Ordnern habe ich die Funktion WatchFolder() geschrieben. Das ist allerdings relativ komplex.
Wenn sich immer nur genau eine PDF-Datei im Ordner befindet, lässt sich das auch deutlich einfacher lösen. Wenn Du den Timer alle paar Sekunden aufrufst, tut das Deinem Rechner auch nicht weh.
In BoBo's Skript steckt zumindest ein Fehler:muss durchersetzt werden.
Welchen Weg willst Du gehen?
Edit:
Wenn sich immer nur genau eine PDF-Datei im Ordner befindet, lässt sich das auch deutlich einfacher lösen. Wenn Du den Timer alle paar Sekunden aufrufst, tut das Deinem Rechner auch nicht weh.
In BoBo's Skript steckt zumindest ein Fehler:
Code: Select all
prevFile = file ; festhalten des ermittelten dateinamen zum vergleich beim nächsten durchlauf.
Code: Select all
prevFile := file ; festhalten des ermittelten dateinamen zum vergleich beim nächsten durchlauf.
; oder
prevFile = %file% ; festhalten des ermittelten dateinamen zum vergleich beim nächsten durchlauf.
Welchen Weg willst Du gehen?
Edit:
Durch das Skript?Das pdf wird automatisch gelöscht
Re: Suche Code zum Datei öffnen in einer Schleife
Diese eine Datei soll dann durch das Skript gelöscht werden
Bei dem Script oben passiert bei mir nichts, auch nicht wenn ich das ändere.
Bei dem Script oben passiert bei mir nichts, auch nicht wenn ich das ändere.
Re: Suche Code zum Datei öffnen in einer Schleife Topic is solved
Mit etwas Glück (ich habe nicht getestet):
Code: Select all
#NoEnv
#SingleInstance, Force
; Der Titel eines Fensters kann den angegebenen Fenstertitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein.
SetTitleMatchMode, 2
fExt := "pdf" ; Dateiendung
srcPath := "C:\PDF" ; Dateiverzeichnis
fPattern := srcPath . "\*." . fExt ; Suchmuster
Delay := 5 * 1000 ; Pause nach erfolglosem Schleifendurchlauf (5 Sekunden)
Loop { ; Endlosschleife
file := "" ; Dateinamen löschen
Loop, Files, %fPattern% ; Verzeichnis nach PDFs durchsuchen
{
file := A_LoopFileName ; es wird nur der erste ermittelte Dateiname erfasst
path := A_LoopFileLongPath
Break
}
If (file <> "") ; wenn eine Datei gefunden wurde
{
Run, %path% ; Datei öffnen
WinWaitActive, %file% ; auf das Fenster warten
WinWaitClose ; auf das Schließen des Fensters warten
FileDelete, %path% ; Datei löschen
}
Else ; ansonsten
{
Sleep, %Delay% ; pausieren, bevor der nächste Schleifendurchlauf gestartet wird
}
}
Return
Re: Suche Code zum Datei öffnen in einer Schleife
Es gab einen weiteren typo bei meinem script: Loop, File vs Loop, Files. Damit wäre es lauffähig gewesen (best guess). Durch diesen fehler agierte der Loop als reine zählschleife, womit die A_LoopFilename-variable leer blieb und die bedingung konstant zutraf ("leer = leer. Ab nach hause) Dubios das AHK das falsche "File"-setting nicht angemosert hat
Files [v1.1.21+]
The literal word Files (case-insensitive). This cannot be a variable or expression.
Last edited by BoBo on 12 Jul 2017, 07:32, edited 1 time in total.
Re: Suche Code zum Datei öffnen in einer Schleife
Es läuft Vielen Dank
Who is online
Users browsing this forum: Rohwedder and 34 guests