Ich führe den folgenden Code im Terminal aus:
osascript "/Users/Me/Desktop/Run this script on wake.scpt"
Wenn das erste Dialogfeld meiner .scpt-Datei ein choose from list
Dialogfeld ist, wird dieses Dialogfeld nicht ausgewählt. Das heißt, ich kann nicht einfach die enterTaste drücken, um "OK" zu drücken; Ich muss zuerst auf eine beliebige Stelle im Dialogfeld klicken, damit die obere Leiste des Dialogfelds von weiß zu grau wechselt, und erst dann kann ich drücken, um enterfortzufahren.
Um es klar zu sagen, der Dialog kommt ganz gut in den Vordergrund - er ist einfach nicht ausgewählt.
Wenn das erste Dialogfeld jedoch ein display dialog
oder- Dialog ist, wirddisplay alert
das Dialogfeld automatisch ausgewählt. Es passiert einfach so, dass der anfängliche Dialog meiner .scpt-Datei ein Dialog ist.choose from list
Ich habe versucht, activate me
in die Zeile über dem choose from list
Dialog zu schreiben, aber das hat nichts gebracht.
Wenn ich im Skripteditor "Dieses Skript auf Wake.scpt ausführen" ausführe, choose from list
wird der Dialog tatsächlich ausgewählt. Daher wissen wir, dass das Problem damit zusammenhängt osascript
.
Hat jemand eine Problemumgehung, um zu erzwingen, dass der choose from list
Dialog automatisch ausgewählt wird?
Ich habe versucht, eine Standardauswahl zu implementieren, indem ich den default items
Parameter in den choose from list
Befehl eingefügt habe (obwohl ich in diesem Fall eigentlich nicht möchte, dass ein Standardelement vorhanden ist). Ich dachte, dass dies die Auswahl des Dialogs erzwingen könnte. Der Listendialog ist jedoch immer noch nicht ausgewählt.
Als letzten Ausweg nehme ich an, dass ich AppleScript verwenden könnte, um mit der Maus auf die Mitte des Bildschirms zu klicken (wo sich das Dialogfeld befindet). Ich würde jedoch eine elegantere Lösung bevorzugen, da AppleScript bei Mausklicks unzuverlässig sein kann.
Wenn Sie sich fragen, warum ich osascript
überhaupt arbeite, liegt es daran, dass ich SleepWatcher verwende , um automatisch ein AppleScript auszuführen, wenn mein Computer aus dem Ruhezustand aufwacht. ( Hier ist eine sehr hilfreiche Anleitung , die ich zum Einrichten von SleepWatcher verwendet habe.)
Dies ist der vollständige Text meiner .wakeup-Datei:
#!/bin/bash
osascript "/Users/Me/Desktop/Run this script on wake.scpt"
Das ist seltsam. Fürs Erste würde ich empfehlen, dass Sie Ihr Skript als ausführbare Datei speichern. Öffnen Sie dazu Ihr Applescript im Skripteditor, klicken Sie dann auf das Menü „Datei“, dann auf „Exportieren“ und wählen Sie dann „Anwendung“ im Dropdown-Feld „Dateiformat“ aus. Sie könnten dann ein Applescript erstellen, das diese Anwendung ausführt.
choose from list
ist der Anfangsdialog nicht ausgewählt. Aber jetzt wissen wir, dass der Fehler breiter ist als osascript
.activate me
in der obigen Zeile einfüge choose from list
, unabhängig davon, wie die .app-Datei ausgeführt wird. Danke!Wie ich bereits im Zusammenhang mit einer anderen Frage herausgefunden habe, ist Ihr Problem das "Ich" in Ihrem Skript und daher nicht nur "bezogen" auf Osascript:
osascript IST DEIN Problem…
… da osascript KEIN bloßer Befehl im Terminal ist, sondern eigentlich ein eigener Prozess .
Wenn Sie eine Datei vom Terminal aus öffnen möchten, müssen Sie "Terminal aktivieren" und NICHT "mich aktivieren" [= osascript].
(Da Sie bereits eine Antwort als Ihre "Auserwählte" akzeptiert haben, beschränke ich mich auf diesen Hinweis.)
Clemsam lang
activate application "Terminal"
NICHT „me“ (= Osascript) …