2017-02-01 5 views
1

В настоящее время я пытаюсь написать AppleScript для моей Touchbar, который копирует предопределенную переменную в буфер обмена, а затем вставляет ее в текстовый документ.AppleScript добавляет Enter/NewLine в буфер обмена при вставке в Word

Ну, это действительно работает, но по какой-либо причине, кроме простого вставки переменного текста, он также добавляет к нему Enter/NewLine. Теперь я уже провел некоторое тестирование и просто назначил простой текст непосредственно в буфер обмена, и NewLine все еще была там, поэтому это не переменная. Я также тестировал вывод Cmd + V, а также, когда я просто вставлял текст вручную, он по-прежнему вставляет его с помощью ввода, поэтому кажется, что что-то не так с назначением. Но так как я новичок в AppleScript, и язык действительно странный, я действительно не понимаю, что я делаю неправильно. Здесь важно часть кода:

activate application "Microsoft Word" --I'm doing this, but you prolly don't need to. 
set Donnerstag12 to "Anwendungsentwicklung" 
set the clipboard to Donnerstag12 
tell application "System Events" to keystroke "v" using {command down} 

Теперь я только что заметил, что когда я позволил AppleScript вставить в страницы, TextEdit или прямо в коде, он не включает в себя строку. Есть идеи?

ответ

0

Вы можете использовать type text команду Microsoft Word.

set Donnerstag12 to "Anwendungsentwicklung" 
tell application "Microsoft Word" to type text selection text Donnerstag12 
+0

Приятно, сколько способов для ввода текста? нажатие клавиши, код клавиши и текст типа? Я попробовал нажатие клавиши раньше, но поскольку A находится в Caps, он также написал некоторые буквы после этого в Caps по какой-то причине. Но текст типа работает нормально. Спасибо! – derRAV3N

+0

'type text' - это команда только для приложения ** Word **,« клавиша нажатия »и« код ключа »- это команды для набора процессов приложения **« Sytem Events »**. Некоторые приложения ** AppleScriptable ** - это команды для вставки текста в позицию курсора, имя этой команды отличается для каждого приложения. – jackjr300

0

Это должно быть что-то, что Word делает с помощью опций «Smart Cut &« Вставить », хотя я не вижу такого поведения в Word 2011. Вы можете посмотреть, как это изменить в расширенных расширенных настройках. Вы также можете просто изменить свой скрипт, чтобы удалить маркер абзаца при вставке в Word.

activate application "Microsoft Word" --I'm doing this, but you prolly don't need to. 
set Donnerstag12 to "Anwendungsentwicklung" 
set the clipboard to Donnerstag12 
tell application "System Events" 
    keystroke "v" using {command down} 
    if name of (first process whose frontmost is true) is "Microsoft Word" then key code 51 
end tell 
+0

Вау, это абсолютное безумие, я просто заметил, что Слово делает это со всем, что может показаться чем-то вроде названия. Просматривая варианты atm, но мои надежды низки. – derRAV3N

+0

Что вы подразумеваете под «может показаться чем-то вроде названия»? Вы имеете в виду, когда вы вставляете стиль заголовка? Почему мой обход не работает? – jweaks

+0

Я имею в виду, например, когда просто вставляю одно слово, а не целое предложение. Также при простое вставке адреса Mac (только для тестирования) нет NewLine. Ваш метод обхода работы работает, да, но я бы хотел решить его без обходного пути;) – derRAV3N