ターミナルを使用してキーストロークを送信する方法は?


12

ターミナルが複数のキーを同時に押すことをシミュレートする方法はありますか?たとえば、Shift + Ctrl + R?

私はsshWindowsクライアント(PuTTY)からOS Xにアクセスしていて、クライアントを構成する必要があるのか​​、それともOS Xが受信側でこれらのコマンドをエミュレートするネイティブな方法があるのか​​疑問に思っています。


端末を使用してキーボードショートカットを送信することです。具体的には、ctrl + opt + shift + eを送信する必要があります。私はそれがWindowsコンピュータからであるので、AppleScriptなしでそれを行う必要があります。私が想定しているのは、ある種のターミナルシミュレータ、またはcmdからのSSHです。
user84019 14

AppleScriptは、osascriptを使用してSSHで動作します。以下の回答は、OS XマシンにGUIが存在する場合、SSHを介して完全に機能します。
grg

回答:


8

ターミナルでAppleScriptを使用できます。

osascript -e 'tell application "System Events" to keystroke "r" using {control down, shift down}'

試してみると、「>」の新しい行が表示されますか?
user84019 14

プログラム固有ですか?たとえば、TextEditに「E」と入力したい場合、「osascript -e 'アプリケーション「システムイベント」に{shift down}を使用してキーストローク「e」を伝える」と入力しますか?」
user84019 14

2
さて、私はctrl + opt + shift + eと入力しようとしていますが、「osascript -e 'アプリケーション「システムイベント」に{control down、shift down、option down}を使用して「e」をキーストロークするように伝えます」」 "48:55:構文エラー:この" "の後に識別子を続けることはできません。(-2740) "
user84019 14

キーストロークは、手動で入力した場合とまったく同じように入力されます。これらは各アプリケーションに固有のものではありません。アプリケーション内でキーストロークを入力する場合は、 `osascript -e 'アプリケーション「AppName」にアクティブ化を通知します」を使用します。これにより、アプリケーションがまだ開いていない場合はアプリケーションが起動し、フォアグラウンドにもなります(つまり、名前がメニューバーに表示されます)。その後、上記の回答で提供されているコード@grgを使用できます。
Peter Schorn

3

cliclickシェルツールは非常に優れています。キーストローク、クリック、あらゆる種類のものを送信します

https://github.com/BlueM/cliclick


boulder_ruby-優れたソリューション、優れたリファレンス。あなたはcliclick作者ですか?
Johnny Utahh

@JohnnyUtahhそれは否定的で、オタクは自動化に夢中です
boulder_ruby
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.