Mac 바탕 화면의 한 창에서 키보드 단축키 또는 키 시퀀스를 다른 컴퓨터로 프로그래밍 방식으로 보낼 수 있습니까?Mac OS X 창에 키보드 단축키 보내기
저는 응용 프로그램의 키보드 단축키 기능을 사용하여 API를 제공하지 않는 응용 프로그램을 제어하려고합니다.
Windows에서이 작업을 수행 할 수 있다고 확신합니까?
감사
이 작업을 수행하는Mac 바탕 화면의 한 창에서 키보드 단축키 또는 키 시퀀스를 다른 컴퓨터로 프로그래밍 방식으로 보낼 수 있습니까?Mac OS X 창에 키보드 단축키 보내기
저는 응용 프로그램의 키보드 단축키 기능을 사용하여 API를 제공하지 않는 응용 프로그램을 제어하려고합니다.
Windows에서이 작업을 수행 할 수 있다고 확신합니까?
감사
이 작업을 수행하는한 가지 방법은 목표 - C 응용 프로그램에서 AppleScript를 임베딩된다. 이 애플 스크립트를 실행 예를 들어, 전송 명령 + M 응용 프로그램 System Events
에 :
//AppControler.h
#import <Cocoa/Cocoa.h>
@interface AppController : NSObject {
NSAppleScript *key;
}
-(IBAction)sendkeys:(id)sender;
@end
//AppControler.m
#import "AppController.h"
@implementation AppController
-(IBAction)sendkeys:(id)sender
{
NSAppleScript *key = [[NSAppleScript alloc] initWithSource:@"tell application "System Events" to keystroke "m" using {command down}"];
[start executeAndReturnError:nil];
}
@end
당신에게 :이 같은 뭔가 코코아 응용 프로그램에서 스크립트를 위에 포함 할 수 있습니다
tell application "System Events" to keystroke "m" using {command down}
AppleScript가 없어도이 작업을 수행 할 수 있습니다. 다음은 수정 자와 함께 키 코드를 전송하는 예제 코드입니다.
- 편집 : (키보드에서 누른 것처럼)이 특정 응용 프로그램, 전체 시스템 만 후 키 입력을 대상
#include <ApplicationServices/ApplicationServices.h>
// you can find key codes in <HIToolbox/Events.h>, for example kVK_ANSI_A is 'A' key
// modifiers are flags such as kCGEventFlagMaskCommand
void PostKeyWithModifiers(CGKeyCode key, CGEventFlags modifiers)
{
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventRef keyDown = CGEventCreateKeyboardEvent(source, key, TRUE);
CGEventSetFlags(keyDown, modifiers);
CGEventRef keyUp = CGEventCreateKeyboardEvent(source, key, FALSE);
CGEventPost(kCGAnnotatedSessionEventTap, keyDown);
CGEventPost(kCGAnnotatedSessionEventTap, keyUp);
CFRelease(keyUp);
CFRelease(keyDown);
CFRelease(source);
}
좋은 생각이긴하지만 OP가이를 어떻게 별도의 대상 프로세스로 보냅니 까? – BigBrother
왜 NX_KEYTYPE_PLAY에서 작동하지 않습니까? 그냥 "y" – jLynx
완벽하지 않습니다. 누구든지 이걸 보면서 애플 스크립트에 관한 사과 문서가 유용 해 보입니다. http://developer.apple.com/library/mac/#documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html. 고마워요. – Adam