後でCGEventPostToPSNでキーを送信するプロセスにアクセスしようとしています。しかし、私の問題は、私は実行中のプロセスを得ることができないということです。私は、次のコードを使用しています:一部のプロセスでGetProcessForPIDエラー-600
pid_t pid = GetPIDForProcessName("myprocess");
NSLog(@"PID: %d", pid);
ProcessSerialNumber psn = { 0, pid };
OSStatus status = GetProcessForPID(pid, &psn);
if (status != noErr) {
NSLog(@"OSStatus KO PID: %d %d %d", status, noErr, pid);
}else{
NSLog(@"OSStatus OK PID: %d %d %d", status, noErr, pid);
CGEventRef keyDown;
keyDown = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)0, TRUE);
CGEventRef keyUp;
keyUp = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)0, FALSE);
CGEventPostToPSN(&psn, keyDown);
CFRelease(keyDown);
CGEventPostToPSN(&psn, keyUp);
CFRelease(keyUp);
}
私は整数としてPIDを取得するには、クラス「GetPID.h」を使用していますが、これは正常に動作しているようです。しかし、GetPIDForProcessNameステータスに「指定されたプロセスシリアル番号を持つ適格プロセスがありません」というエラー600が表示されます。
私はいくつかのプロセスをテストしましたが、このコードは動作しますが、他のプロセスでは動作しません。私はプロセス間の非常に明確な違いはありません
どうかありがとうございます。
...コピーがある場合。もうオンラインでは利用できません。 (URLは*でした:http://developer.apple.com/library/mac/qa/qa2001/qa1123.html) –
@PeterHosey:あなたが正しいと思います。 Xcode 3.2.6でドキュメントを検索すると、10.6コアライブラリにありますが、Xcode 4.2のドキュメントを検索すると、そこにはありません。 – JWWalker
ありがとうございました。私の選択は正しい方法ではないかもしれません –