AppleScript to paste clipboard into current application

5

2

I thought this would be simple...

I want an AppleScript that launches Plain Clip and then pastes the clipboard into the current document where the cursor is. My script launches Plain Clip (a format-clearing app that doesn't steal focus), but it doesn't paste the new clipboard. Any ideas?

tell application "Plain Clip" to activate
delay 1
tell application "System Events" to tell (name of application processes whose frontmost is true) to keystroke "v" using {command down}

Zade

Posted 2012-07-30T23:09:07.127

Reputation: 151

yep, no dice...I'll update the code though – Zade – 2012-07-30T23:13:31.723

I realized later that {} seems to be the notation for a list of keys. So I guess it would just be optional in this case. Nevermind :) – Der Hochstapler – 2012-07-30T23:20:34.500

Answers

3

Since you're stripping the clipboard down to plaintext anyway, you could perhaps finish by scripting the keyboard rather than scripting Plain Clip.

do shell script "pbpaste |textutil -convert txt -stdin -stdout -encoding 30 |pbcopy"
tell application "System Events" to keystroke (the clipboard)

p.s. that first line does the same thing that Plain Clip does.
p.p.s. scripting System Events requires access for assistive devices to be on.

Joel Reid

Posted 2012-07-30T23:09:07.127

Reputation: 141

If you use this, you have to be careful not to press any modifier keys while the clipboard is being typed out. – BallpointBen – 2018-09-14T04:22:27.780

I have System Events type out the clipboard for me all the time, into text fields that don't allow pasting. For example, I have long, random-character passwords for some encrypted disk images stored in a password manager, but DiskImageMounter doesn't allow pasting. – Joel Reid – 2012-08-03T14:36:17.860

This works within the AppleScript editor if I click Run. However, I've set a keyboard shortcut to run this, and when I press the shortcut, weird things happen. It doesn't paste the clipboard. Furthermore, I want it to remove leading/trailing spaces/tabs from each line, as well as blank lines and invisible control characters, like Plain Clip does. Is this possible? Thanks! – Zade – 2012-08-04T04:40:47.147

1

I ran your script and it worked fine for me. Which OS are you using?

Another option is to use have AppleScript run a shell script accessing PlainClip's command line option:

tell application "System Events" to tell (name of application processes whose frontmost is true) to do shell script "'/Applications/Plain Clip.app/pc' -v"

Sojourner

Posted 2012-07-30T23:09:07.127

Reputation: 71

0

This is how I resolved my problem:

delay 0.2
do shell script "'/Applications/Plain Clip.app/pc' -w -l -m -i -s -a -v"

Thanks guys.

Zade

Posted 2012-07-30T23:09:07.127

Reputation: 151