Я не совсем понимаю, что вы пытаетесь сделать, но я могу сказать, что вы почти наверняка не хотите делать это, отправляя симулированные нажатия клавиш через системные события или используя системные события каким-либо образом для управления процессами. , Это плохой сценарий, и эти сценарии сломаются в рекордно короткие сроки.
Ваша идея использовать TextEdit была на самом деле лучшей идеей, так как на самом деле можно написать скрипт TextEdit для непосредственного редактирования документа, что более надежно, чем ваш текущий подход.
Но даже использование TextEdit на самом деле не нужно, поскольку вы можете просто записать данные в файл непосредственно из AppleScript:
Я собираюсь предположить, что переменная data_memory_full
содержит простые текстовые данные, и что вы, вероятно, захотите, чтобы результирующий текстовый файл использовал кодировку текста UTF-8.
Учитывая это, вы можете записать содержимое переменной data_memory_full
в новый или существующий файл следующим образом:
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 {name:my path})
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
Измените эту строку:
property path : "~/Google Drive/AppleScript/bot/MEMORY.data"
содержать путь к файлу, где вы хотите, чтобы файл памяти был создан. Файл не должен уже существовать, так как сценарий создаст его при необходимости. Однако папки, содержащие путь к файлу, должны существовать. В своих тестах я создал файл, который хранился локально в моем каталоге "Google Drive", который затем синхронизируется с Google Drive в облаке (для этого необходимо установить программное обеспечение Google Backup & Sync ).