以这种方式捕获目标应用程序选择以及它是否接受命令。
您需要将其设为活动应用程序。因为您正在使用这样的复制功能,所以您实际上不需要添加进程告诉块。但是有一些 GUI 命令不需要让目标应用程序处于活动状态,只需使用tell application process
块即可。imo使用它是一个好习惯..
因此,如果您决定或需要在 a 中使用进程名称,tell application process
您也可以使用NSString stringWithFormat:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[self runApplescriptCopy:@"Safari"];
}
-(void)runApplescriptCopy:(NSString*) processName{
NSDictionary * errorDict;
NSString * copyStr = [NSString stringWithFormat:@"tell application \"%@\" to activate \n tell application \"System Events\" to tell application process \"%@\" to key code 8 using command down",processName ,processName ];
NSAppleScript * copyScript = [[NSAppleScript alloc] initWithSource:copyStr];
NSAppleEventDescriptor *aDescriptor = [copyScript executeAndReturnError:&errorDict];
}