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

drop-Handler übergibt seltsame Pfade

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


Anmeldedatum: 25.02.2003
Beiträge: 447
Wohnort: Geldern

BeitragVerfasst am: 27.02.2004 - 20:45    Titel: drop-Handler übergibt seltsame Pfade Antworten mit Zitat

Hallo zusammen,

Per Drag & Drop auf ein Programm gezogene Dateien liefern bei Abfrage des Referenztyps "file names" (dieser Abfragewert wird auch von Apples Beispiel-Drag&Drop-Anwendung benutzt) immer "relative" Pfadangaben wie "/Users/martinwolter/Desktop/Bild 1.pdf". Auf solch einen string kann der Finder nicht direkt zugreifen.

Ein on open Handler im klassischen Sinne liefert offenbar direkt "richtige" Pfadangaben wie "Macintosh HD:Systemordner:Finder".

Daher kann man ja einfach eine Dateiliste abarbeiten:

on open objekte
tell application "finder"
repeat with datei in objekte...
...

Bei den relativen Angaben mit Schrägstrichen funktioniert aber der Finder-Zugriff auf solch ein Objekte nicht. Habt Ihr eine Idee, wie man im drop-Handler nun auf diese Dateien (übergebene Liste) zugreifen kann?

Ich habe schon erfolglos probiert, zusätzlich zu einem klassischen on open-Ablauf set datei to path to datei oder set datei to datei as alias zu benutzen.

Martin
_________________
Martin Wolter
--
Apple rocks the planet!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1955
Wohnort: Deiningen

BeitragVerfasst am: 27.02.2004 - 22:15    Titel: Antworten mit Zitat

Hallo Martin,

kleines Beispielskript:

set myPath to POSIX path of (choose file)
-- "/Users/snow/Desktop/Screenshots/JPEG Images/Bild 1.jpg"
set dieDatei to myPath as POSIX file


Ergebnis:
file "X Disk:Users:snow:Desktop:Screenshots:JPEG Images:Bild 1.jpg"

Die erste Zeile stellt eine Pfadangabe mit Schrägstrichen her.
Die zweite Zeile macht daraus eine Pfadangabe, wie du sie brauchst.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Wolle-77
•--->
•--->


Anmeldedatum: 25.02.2003
Beiträge: 447
Wohnort: Geldern

BeitragVerfasst am: 27.02.2004 - 23:37    Titel: Das hilft schon mal sehr, aber... Antworten mit Zitat

Hallo Snow,

vielen Dank für diesen Tip. Das hilft schon mal sehr. Die Pfadangaben lassen sich damit umwandeln. Auf der Suche nach mehr Informationen zu der POSIX-Funktion bin ich nur sehr vereinzelt fündig geworden. Im Buch AppleScript in a Nutshell steht da gar nichts zu. In einem Beispielprojekt auf apple.com stand da auch nur das wesentliche.

Aber nun tritt ein ganz anderes störendes Problem auf:

So ist mein Handler:

on drop theObject drag info dragInfo
set dataTypes to types of pasteboard of dragInfo
if "file names" is in dataTypes then
set preferred type of pasteboard of dragInfo to "file names"
set thePaths to contents of pasteboard of dragInfo
if name of theObject is "lumo" then
my lumo(thePaths)
...
end if
end drop

on awake from nib theObject -- klar, das gehört an den Anfang.
tell box "lumo" of window "haupt" to register drag types {"file names"}
end awake from nib

on lumo(objekte) -- lock & unlock Hauptobjekte
tell application "Finder"
repeat with datei in objekte
set datei to datei as POSIX file
set datei to datei as alias
try
if locked of datei is true then
...



So, durch die beiden Zeilen läuft das Script per Drag & Drop an und auch fehlerfrei zu Ende, aber unerträglich langsam. Ich habe hier mein iBook 900, und es braucht bestimmt 6 Sekunden, bis die Obkekte einzeln bearbeitet werden und dann noch einmal so lange, bis die Objekte wieder "zurückspringen".

Also irgendwas scheint sich da intern aufzulaufen. Und die beiden Zeilen müssen ja innerhalb der Schleife stehen.


Hast Du Erfahrung mit Drag&Drop? Wüßtest Du eine bessere Methode? Ich könnte höchstens die POSIX-Umwandlung schon im drop-Handler machen, aber das würde ja vom Prinzip nichts ändern.

Ich glaube, ich schiebe das Problem einfach auf AS Studio. Vielleicht eine Ungereimtheit beim Kompilieren, die irgendwann mal behoben wird. :?:

!!! Denn: Mache ich keine Umwandlung der Pfade und entferne den Try-Block, dann erscheint die Fehlermeldung SOFORT. Also Performance ist top, aber Programm halt falsch :roll:
_________________
Martin Wolter
--
Apple rocks the planet!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum 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