Tastenanschläge auf VLC über AppleScript erhalten

Ich habe eine AppleScript-Datei, die wie ein Zauber funktioniert, mit Ausnahme des Teils, in dem ich Tastenanschläge verwende, um VLC im Vollbildmodus auszuführen. Der Dateiname wurde aus Datenschutzgründen geändert, aber der Rest des Codes ist genau derselbe. Mein Code geht so:

tell application "Finder"
    set MyFile to ((path to me as text) & "File.mkv") as text
end tell
tell application "VLC"
    open MyFile
end tell
tell application "System Events"
    tell application process "VLC"
        set frontmost to true
        keystroke "f" using command down
    end tell
end tell
Wie wird der AppleScript- Code ausgeführt? Wird es als .app gespeichert und das Ziel MyFileim Stammverzeichnis des Anwendungspakets platziert ? Ich frage, weil ich nicht sehe, wie Ihr erster tell Block sonst einen richtig geformten Pfadnamen an die Zieldatei zurückgeben könnte .

Antworten (1)

Sie müssen VLC nicht anweisen, den Tastendruck auszuführen.

tell application "VLC"
    open MyFile
    activate
end tell
tell application "System Events"
    keystroke "f" using command down
end tell

Ich verstehe, dass Sie sagen, der Rest des Skripts funktioniert, aber ohne weitere Informationen verstehe ich nicht, wie.

path to megibt den Pfad zum eigentlichen Skript zurück, nicht zum enthaltenden Ordner. Das bedeutet, dass Sie am Ende mit dem Äquivalent von enden path:to:script.scptFile.mkv, was nicht wahr sein kann. Stattdessen müssen Sie den Container abrufen:

tell application "Finder"
    set MyFile to ((container of (path to me) as text) & "File.mkv") as text
end tell

Dies wird zurückkehren path:to:File.mkv. Stellen Sie sicher, dass sich Ihr mkv tatsächlich an diesem Ort befindet.


Vollständiges Skript:

tell application "Finder"
    set MyFile to ((container of (path to me) as text) & "File.mkv") as text
end tell
tell application "VLC"
    open MyFile
    activate
end tell
tell application "System Events"
    keystroke "f" using command down
end tell
Entschuldigung, nicht der gesamte Code wurde kopiert ... es war tatsächlich "set MyFile to ((path to me as text) & "Contents:Resources:File.mkv") als Text ... Ich werde Ihr Skript testen und sehen, wie es geht. edit Schön, es hat funktioniert ... danke!