Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Abfrage ob Datei benutzt wird

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
bodenpersonal
•->
•->


Anmeldedatum: 25.02.2012
Beiträge: 2

BeitragVerfasst am: 25.02.2012 - 21:13    Titel: Abfrage ob Datei benutzt wird Antworten mit Zitat

Hallo zusammen,

ich bin neu in diesem Forum und noch neu und unerfahren im Umgang mit Scripten. Ich möchte ein Script erstellen, das sobald eine Datei zu einem Verzeichnis hinzugefügt wird diese mittels OCR erkennt. Dazu speichert mein Scanner in einen freigegebenen Ordner auf einem Netzlaufwerk. Das Problem ist, dass der Scanvorgang unterschiedlich lange dauert, abhängig wie viele Seiten das Dokument hat. Deshalb möchte ich abfragen, ob die Datei noch in Benutzung ist, erst dann soll das Script weiter laufen. Die Dateiinfo mittels

Code:

...
tell application "System Events" to get properties of file "homeserver:SanDisk-CruzerBlade-01:scan.pdf"
...


klappt nicht, da die Datei busy-Eigenschaft nicht geändert wird.

Jetzt habe ich ein Script gebastelt, das mit fest eingebauten Dateinamen wunderbar funktioniert. Ich versuche die Datei mit schreibrechten zu öffnen, was erst funktioniert wenn der Scanner sie freigegeben hat.

Code:

try
   set this_item to "homeserver:SanDisk-CruzerBlade-01:scan.pdf"
   --Abfrageschleife ob Datei benutzt wird, darin OCR-Aufruf
   repeat 20 times
      try
         open for access file this_item -- wenn möglich, Datei nicht in Benutzung
         close access result
         ocr(this_item)
         exit repeat
      on error -- Datei in Benutzung
         delay 3 -- Warte insgesamt 1 Minute 20 x 3
      end try
   end repeat
on error errText
   display dialog "Error: " & errText
end try
end adding folder items to

-- OCR-Funktion
on ocr(scan_file)
   tell application "ExactScan Pro"
      activate
      set profile to 11
      open scan_file
      delay 5 --warte kurz
      repeat until processing is false
      end repeat -- wird noch gearbeitet?
      close scan_file
      delay 5 --warte kurz
   end tell
end ocr


Sobald ich das ganze aber nun in eine Ordneraktion umwandle, funktioniert es nicht und ich habe keine Ahnung warum.

Code:

on adding folder items to this_folder after receiving these_items
   try
      repeat with i from 1 to number of items in these_items
         set this_item to item i of these_items
         --Abfrageschleife ob Datei benutzt wird, darin OCR-Aufruf
         repeat 20 times
            try
               open for access file this_item -- wenn möglich, Datei nicht in Benutzung
               close access result
               ocr(this_item)
               exit repeat
            on error -- Datei in Benutzung
               delay 3 -- Warte insgesamt 1 Minute 20 x 3
            end try
         end repeat
      end repeat
   on error errText
      display dialog "Error: " & errText
   end try
end adding folder items to

-- OCR-Funktion
on ocr(scan_file)
   tell application "ExactScan Pro"
      activate
      set profile to 11
      open scan_file
      delay 5 --warte kurz
      repeat until processing is false
      end repeat -- wird noch gearbeitet?
      close scan_file
      delay 5 --warte kurz
   end tell
end ocr


Bin schön langsam am verzweifeln, aber wahrscheinlich ist es nur eine Kleinigkeit, die ich als Anfänger nicht erkenne...
Kann mir jemand von Euch helfen?

Vielen herzlichen Dank

Stefan
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Wolle-77
•--->
•--->


Anmeldedatum: 25.02.2003
Beiträge: 449
Wohnort: Geldern

BeitragVerfasst am: 28.02.2012 - 15:02    Titel: Antworten mit Zitat

Hallo Stefan,

Am Besten, Du läßt das die Shell erledigen. Also am Besten den Finder außen vor lassen und ich würde es gefährlich finden, ständig einen Schreibzugriff auf Dateien zu versuchen und diese dann wieder zu schließen.

Du kannst einfach eingeben:
Code:
my dateibenutzt(datei) # alias

on dateibenutzt(datei)
   try
      do shell script "lsof " & (quoted form of (POSIX path of datei))
      return true
   on error
      return false
   end try
end dateibenutzt


Du bekommst dann ein true (Datei ist in Verwendung) oder false (Datei ist frei) zurück.

Intern erhältst Du soetwas zurück:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Preview 1804 macmissionar txt REG 14,2 46331 12461962 /Pfad


Achtung: Bestimmte Prozesse melden sich nicht an, lesen eine Datei nur ein, halten Sie aber nicht fest im Zugriff. Dazu gehört beispielsweise TextEdit und Photoshop.
_________________
Martin Wolter
--
Apple rocks the planet!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
bodenpersonal
•->
•->


Anmeldedatum: 25.02.2012
Beiträge: 2

BeitragVerfasst am: 28.02.2012 - 17:33    Titel: Antworten mit Zitat

Vielen Dank für Deine Antwort! Leider funktioniert es nicht, da die Datei nicht von meinem Rechner, sondern von einem Netzwerkscanner erzeugt wird. Deshalb versuchte ich es mit einem Schreibzugriff zu lösen, denn wenn ich die Datei mit einem Doppelklick zu öffnen versuche, dann antwortet der Finder, dass ich nicht die mutigen Rechte besitzet, die Datei zu öffnen. Der Scanner macht unterdessen einfach weiter, ohne sich davon beeindrucken zu lassen.

Mittlerweile habe ich aber etwas näheres zu meinem Fehler gefunden, was mir aber nicht sonderlich weiterhilft... Folgenden Fehler erzeugt mein Script:

Zitat:
Error: -1700 file (alias "Macintosh HD:Users:info:Desktop:test:example.gif") kann night in Typ <<class fsrf>> umgewandelt werden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 13.03.2012 - 00:17    Titel: Antworten mit Zitat

versuchs mal mit

open (scan_file as text)

statt mit

open scan_file

innerhalb deines ocr-handlers
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter