So fügen Sie in Safari mit applescript ein, ohne die eigentliche applescript-Datei einzufügen

293
Rook_Blank

Ich habe kürzlich applescript entdeckt und wollte unbedingt einen Internet-Bot damit erstellen. Ich habe meinen Bot mit einem Speicher erstellt, damit dieselbe Website nicht zweimal durchsucht wird. Ich möchte mein Gedächtnis in Google Docs behalten, so dass ich keine zusätzliche Textbearbeitungsdatei mit sich herumschleppen muss (und ich habe auch nicht das Applescript dazu gebracht, Textedit zu verwenden, da es zu einem Zeitlimit kam). Ich möchte meine Daten in das Dokument einfügen, wenn die Anwendung angehalten wird:

set the clipboard to data_memory_full  tell application "Safari"  activate  set URL of document 1 to --Google docs URL  tell application "System Events" to keystroke "v" using  end tell 

Wenn ich dies jedoch mache, wird der Speicher immer in meine Applescript-Datei eingefügt und nicht in Safari. Wie höre ich damit auf ?! Danke im Voraus

0

1 Antwort auf die Frage

0
CJK

Ich weiß nicht vollständig erfassen, was Sie zu tun versuchen, aber ich kann sagen, dass Sie fast definitiv nicht wollen, indem er simulierte Tastenanschläge durch das Tun es zu Systemereignissen oder mit Systemereignissen in irgendeine Weise Prozesse zu steuern . Es ist schlechtes Scripting, und diese Scripts werden in Rekordzeit brechen.

Ihre Idee der Verwendung von TextEdit war eigentlich die bessere Idee, wie man tatsächlich Skript TextEdit ein Dokument direkt zu bearbeiten, die als Ihr aktueller Ansatz ist zuverlässiger.

Die Verwendung von TextEdit ist jedoch eigentlich nicht erforderlich, da Sie Daten einfach direkt aus AppleScript heraus in eine Datei schreiben können:


Ich gehe davon aus, dass die Variable data_memory_fullKlartextdaten enthält und dass die resultierende Textdatei wahrscheinlich UTF-8-Textcodierung verwenden soll.

Daher können Sie den Inhalt der Variablen data_memory_fullwie folgt in eine neue oder vorhandene Datei schreiben :

set data_memory_full to "Some sample text to store in memory."   script memoryfile property sys : application "System Events" property path : "~/Google Drive/AppleScript/bot/MEMORY.data" property file : a reference to sys's file (my path)  to make if not (my file exists) then ¬ sys's (make new file ¬ with properties ) end make  to write textdata without overwriting local textdata, overwriting  set textdata to textdata & linefeed  if overwriting then set eof of ¬ (my file as alias) to 0  tell the current application ¬ to write the textdata ¬ to (my file as alias) ¬ starting at eof ¬ as «class utf8» end write  to read tell the current application ¬ to read (my file as alias) ¬ as «class utf8» end read end script   make memoryfile -- Create the data file if it doesn't already exist  -- This command commits data_memory_full to storage tell the memoryfile to write data_memory_full without overwriting  read memoryfile -- This allows you to retrieve the file's contents 

Ändern Sie diese Zeile:

property path : "~/Google Drive/AppleScript/bot/MEMORY.data" 

enthält den Dateipfad an dem Ort, an dem die Speicherdatei erstellt werden soll. Die Datei muss noch nicht vorhanden sein, da das Skript sie bei Bedarf erstellt. Die Ordner, die den Pfad enthalten, in dem sich die Datei befindet, müssen jedoch vorhanden sein. In meinen Tests habe ich eine Datei erstellt, die lokal in meinem "Google Drive" -Verzeichnis gespeichert wurde. Diese Datei wird dann in der Cloud mit Google Drive synchronisiert (dazu müssen Sie die Google Backup & Sync- Software installieren ).