2017-06-01 10 views
0

シンプルなApple JXAスクリプトをセットアップして、よく知られているシュラウド絵文字を画面に表示しようとしています(これは私が推測するキープレスをシミュレートしています)。私が試したすべてのものがこの "¯\ _(a)_ /¯"を作り出します。私はキー・プレスをシミュレートするためにキーストロークを使用しているので、私はいつもそれを得ることができる日本のキーボードを持っていないので、私は仮定しています。たぶん私は代わりにクリップボードに文字列をコピーする必要がありますか?JXAキーストロークは特殊文字では機能しません

はここで、これまでに私のコードです:

// Shrug Script 
// ¯\_(ツ)_/¯ 
// 
// contains special character: 
// ツ 
// KATAKANA LETTER TU 
// Unicode: U+30C4, UTF-8: E3 83 84 

// thought maybe I needed to decode it ¯\_(ツ)_/¯ 
function decode_utf8(s) { 
    return decodeURIComponent(escape(s)); 
} 

// this is the newer "Script" aka Javascript way 
var sysEvents = Application('System Events'); 

// this didn't work: 
// sysEvents.keystroke("¯\\_(ツ)_/¯"); 

// this doesn't work either 
sysEvents.keystroke("¯\\_("+ decode_utf8("\xE3\x83\x84") +")_/¯"); 

答えて

0

は、[OK]をので、私のクリップボードに追加し、すぐにそれがずっと楽だっ貼り付けます。私の質問には直接的な答えではありませんが、最終的な結果は私が望むものです。

アップルスクリプトのバージョン:

# Shrug Script 
# ¯\_(ツ)_/¯ 
# 
# contains special character: 
# ツ 
# KATAKANA LETTER TU 
# Unicode: U+30C4, UTF-8: E3 83 84 

set the clipboard to "¯\\_(ツ)_/¯" 
tell application "System Events" to keystroke "v" using command down 

JXAバージョン:

var app = Application.currentApplication() 
    app.includeStandardAdditions = true 
var seApp = Application('System Events') 

// set current app's clipboard 
app.setTheClipboardTo("¯\\_(ツ)_/¯") 
// paste! 
seApp.keystroke('v', { using: 'command down' }); 
0

彼らは直接、ほぼすべてのアプリケーションでテキストを操作できるように私は強く、タスクのこの種のサービスをお勧めします。 GUIスクリプティングのようなハッキリなklugegesの必要はありません。テキストを出力する新しいサービスをAutomatorで作成するのは非常に簡単です。また、完了したらシステム環境設定のキーボードショートカットにバインドすることもできます。私はそれを考慮しなかった理由私が前にではなく、必ずサービスを作った

Creating an osx service to insert the current date and time

+0

:ここでは、簡単に適応することができます例です。私もこれを試してみます。ありがとう! – Francisc0

関連する問題