これは実際に可能です。スクリプトの「遅れ」は単に私のテキストエディタを行うのに十分な時間を与える
delay 5
tell application "System Events"
repeat 10 times
keystroke "#"
end repeat
end tell
:私は簡単に道を取り、簡単なAppleScriptの使用を開始SendKey at GitHub
- 私はここで入手可能なアプリを作りました最前面のアプリケーション。私は、このスクリプトを実行して、それが何をしているかを見ることから始めておくことを提案します。
はその後、私は、デフォルトのアプリケーションテンプレートを使用してXcodeプロジェクトを作成したと書きました:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSString* scriptPath = [[NSBundle mainBundle] pathForResource:@"sendkey" ofType:@"scpt"];
NSURL* scriptURL = [NSURL fileURLWithPath:scriptPath];
NSDictionary* errors;
NSAppleScript* script = [[NSAppleScript alloc] initWithContentsOfURL:scriptURL error:&errors];
NSLog(@"%@", errors);
[script executeAndReturnError:&errors];
NSLog(@"%@", errors);
}
を、私はそれが動作し、それがなかった検証するためにサンドボックスをオンにすることなく、これをテストしました。それから私はSandboxingをオンにし、もちろん、それは壊れました。しかし、幸いにも、その周りに道があります。今のところAppleはcom.apple.security.temporary-exception.apple-eventsという一時的な権利を提供しています。また、 'com.apple.systemevents'に対して例外を許可するように要求できます。これは私の資格ファイルは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.temporary-exception.apple-events</key>
<array>
<string>com.apple.systemevents</string>
</array>
<key>com.apple.security.app-sandbox</key>
<true />
</dict>
</plist>
私はサンドボックスのアプリにこの権利を追加し、それに署名し、再度、期待通りに働いたら。
他のキーを送信したい場合、この質問&の回答は、あなたのスクリプトを即座に構築する方法を示すでしょう - Passing variables to an applescript。もちろん
あなたはこれらの作業のすべてを持っていたら、あなたはおそらく、コードでイベントを構築するためにNSAppleEventDescriptorおよび関連クラスに向けることができますが、私はその技術でプレイしていません。
Appleは、一時的な権利使用しているときに、以下のか示唆していることに注意してください:あなたが今、あなたのアプリをサンドボックスにまたは一時的 例外資格を使用するために、にAppleのバグ報告システムを使用しないことを選択した場合は
をあなたが遭遇している問題について、Apple に知らせてください。 Appleは、OS Xプラットフォームを開発するにあたり、機能 の要求を考慮しています。また、iTunes Connectの Review Notesフィールドを使用して、例外が に必要な理由を説明してください。
あなたはどの上でこれを行うAppsとするとき、私はそれを再作成するための十分な情報を提供してもらえますか?私はそれがサンドボックスアプリから起こるのを見たことがない。 –
aText.appにチェックを入れ、GoogleにaTextを書き、最初のリンクを確認してください。サイトバージョンはサンドボックス化されていないようですが、アプリストアバージョンはサンドボックス環境で一時的な例外を使用することなく動作しています。もし私が間違っているなら教えてください。ありがとう – AmitSri