Versucht, eine Nachricht von os x message w / applescript zu erhalten

8

Hey Ich führe das folgende Skript aus:

%Vor%

Aber ich bekomme den folgenden Fehler jedes Mal in Nachrichten, wenn ich eine Nachricht bekomme:

%Vor%

Ich kann diesen Fehler nirgends im Internet finden. Es scheint für jeden Chat außer dem aktiven Chat zu funktionieren. Irgendwelche Ideen?

Ich versuche auch, die Ereignisse für "adressierte Nachricht erhalten" hinzuzufügen, aber jedes Mal, wenn ich AppleScript kompiliere, ersetzt das "Empfangene Remote-Bildschirmfreigabe"

    
mike 11.09.2012, 20:39
quelle

2 Antworten

6

Sie erhalten einen Fehler -1708 , wenn Sie ein AppleScript ausgewählt haben, das das angegebene Ereignis nicht behandelt.

Wenn Ihr Skript beispielsweise nur on message sent implementiert hat, Sie dieses Skript jedoch so einstellen, dass es jedes Mal ausgeführt wird, wenn Sie eine Nachricht erhalten, erhalten Sie den Fehler -1708. Das liegt daran, dass Ihr Skript nur mit abgehenden, nicht eingehenden Nachrichten umgehen kann, daher Fehler -1708.

Hier ist etwas Interessantes ...

Wenn Sie versuchen, das Standard-Skript Mix Message Case.applescript für die Ereignisse Message Received , Message Received in Active Chat und Message Sent zu verwenden. Der erste und der letzte funktionieren einwandfrei, aber Sie erhalten einen Fehler von -1708 für das aktive Chat-Ereignis. Daraus können wir ableiten, dass das Skript das Ereignis Message Received in Active Chat nicht behandelt. Und so scheint es, dass nicht einmal Apple mit diesem Ereignis fertig werden kann.

OS X Mavericks Update:

Dieses Update behebt den zuvor erwähnten Fehler. Wenn Sie Apples Beispielskript Speak Events.applescript auswählen, werden Sie feststellen, dass es Nachrichten verarbeitet, die fehlerfrei im aktiven Chat-Raum eingehen. Wenn Sie den Code untersuchen, werden Sie feststellen, dass er die Methode on active chat message received verwendet. Das können wir jetzt in unseren Skripten verwenden. Da ich die alte Version nicht mehr installiert habe, kann ich nicht testen, ob diese Methode in der vorherigen Version funktioniert.

Hier ist der Code von Speak Events.applescript:

%Vor%

Beachten Sie auch, dass Sie nicht länger einzelne Skripts angeben, die für bestimmte Ereignisse ausgeführt werden sollen. Stattdessen geben Sie einen einzelnen Skripthandler für Nachrichtenereignisse an. Das bedeutet, dass Sie alle Ereignisse implementieren müssen, damit keine -1708-Methoden verwendet werden. Beachten Sie, dass Apple in den Beispielskripten sogar den Kommentar # The following are unused but need to be defined to avoid an error hat. Hier ist eine Vorlage, die als Ausgangspunkt für Skripte verwendet werden kann:

%Vor%

Wenn Sie mit diesem Skript beginnen und nur die Methoden implementieren, die Sie benötigen (während Sie den Rest intakt lassen), sollten Sie alle -1708-Fehler vermeiden.

    
Senseful 20.10.2013 05:27
quelle
0

Ich sehe so aus, als ob der message received -Ereignishandler nur funktioniert, wenn es sich in Nachrichten anfühlt. Ich hatte das gleiche Problem mit einem etwas anderen Skript. Nachdem Sie ein anderes Beispiel auf einer anderen Website gefunden haben, kopieren Sie es in ein neues AppleScript-Editorfenster und speichern es über der AppleScript-Datei, die in ~/Library/Scripts/Messages von Messages kopiert wurde, und es funktioniert.

Es scheint kein Problem mit Ihrem Skript zu geben. Wenn ich mein aktuelles Skript durch Ihren Code ersetze und das Skript speichere, funktioniert es wie erwartet und zeigt ein Dialogfeld an, das den Text test enthält.

Es reicht möglicherweise auch aus, das Skript so einzurichten, dass es in None und zurück zu dem Skript ausgeführt wird, das Sie in den Nachrichteneinstellungen erstellt haben.

    
Feuermurmel 02.02.2013 11:31
quelle

Tags und Links