파이썬 스크립트를 작성하고 Mac Finder에서 서비스 항목으로 추가하려고합니다. Automator
창을 열고 설정할 수 있음을 안다. 하지만 명령 줄 방식이 필요합니다. 나는 오랫동안 방법을 검색하고 아무 것도 얻지 못합니다 ...CLI를 사용하여 Mac Finder에서 서비스 추가
이것을 달성하는 방법을 아는 사람이 있습니까? 고마워.
파이썬 스크립트를 작성하고 Mac Finder에서 서비스 항목으로 추가하려고합니다. Automator
창을 열고 설정할 수 있음을 안다. 하지만 명령 줄 방식이 필요합니다. 나는 오랫동안 방법을 검색하고 아무 것도 얻지 못합니다 ...CLI를 사용하여 Mac Finder에서 서비스 추가
이것을 달성하는 방법을 아는 사람이 있습니까? 고마워.
여기 내 댓글과 함께 할 것입니다 매우 기본적인 예이다려면 (파이썬, 사과 스크립트 또는 내장 CLI 도구를 사용하여 나에게도 가능).
서비스가 등록되는 방법을 보여주는 것입니다. 심지어 자동화 자도 등록되어 있습니다. 그리고 왜 내가 네가 원하는 것을 할 수 없을지 모른다.
Xcode를 사용하여 새 프로젝트를 만들었습니다. 하는 .m 파일에
코드 :
//
// AppDelegate.m
// testServiceExample
//
// Created by Mark Hunte on 02/09/2013.
// Copyright (c) 2013 Mark Hunte. All rights reserved.
//
#import "AppDelegate.h"
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[NSApp setServicesProvider:self];//Registers a given object as the service provider.
NSUpdateDynamicServices();//Causes the services information for the system to be updated.
}
-(void) runAService:(NSPasteboard *)pboard userData:(NSString *)userData error:(NSString **)error {
if ([[pboard types] containsObject:NSFilenamesPboardType]) {
NSArray *files = [pboard propertyListForType:NSFilenamesPboardType];
NSLog(@" files %@", files);
}
[[NSApplication sharedApplication] terminate:nil];
}
@end
참고 : 나는 응용 프로그램 정보 - PLIST
<array>
<dict>
<key>NSMenuItem</key>
<dict>
<key>default</key>
<string>Service Test</string>
</dict>
<key>NSMessage</key>
<string>runAService</string>
<key>NSSendTypes</key>
<array>
<string>public.item</string>
</array>
</dict>
</array>
로 어레이를 추가 한 다음
[NSApp setServicesProvider:self];//Registers a given object as the service provider.
NSUpdateDynamicServices();//Causes the services information for the system to be updated.
<string>Service Test</string>
메뉴는 서비스가 시스템에 서비스를 등록합니다
응용 프로그램의 첫 번째 실행 (더블 클릭에서 작동 응용 프로그램
<string>public.item</string>
객체에서 실행
<string>runAService</string>
방법을 표시됩니다. 하지만 키보드 바로 가기에서 선택되어 있는지 확인합니다.
NSLog의 결과는 디폴트가를 보유하고있는 PLIST 파일에 기록처럼 뭔가를 사용하여 항목을 추가 할 수 있다면 그래서 심지어 파일 경로를
을 나열합니다되는 console.app에서 볼 수 있습니다 시스템에 등록 된 응용 프로그램은 서비스를 우선적으로 사용합니다. 나는 위의 어떤 것도없이 실제로 아무것도 작동하지 않을 것이라고 생각합니다.
확실히 Automator 응용 프로그램은 plist 파일과 runAservice 메서드에 올바른 정보를 쓸 수 있습니다.
서비스의 실제 방법 플로 이름입니다 runWorkflowAsService.
생각해보십시오. 명령 행에서 앱을 작성하고 빌드 할 수 있습니다. 그리고 그것은 당신에게 파이썬을 실행 시키십시오. 그러나 그것은 갈 많은 어려움입니다. 서비스에 대한 추가 정보를 원하시면
이 사과 문서 here
를 참조하면 "실행 쉘 스크립트"라는 자동화의 액션을 사용하고, 언어로 파이썬을 선택할 수 있습니다. 이게 너를 위해 일하지 않니? Mac Finder에서 서비스를 이용할 수 있기를 원하십니까?귀하의 서비스는 정확히 무엇을해야합니까? – Kaydell
"Finder에 서비스로 스크립트 추가"를 원한다면 "명령 행 인터페이스"에서이 작업을 수행 할 수 있습니다. –
다음은 서비스를 더 잘 이해하려고 시도해 온 다른 링크와의 링크입니다. http://www.learnbymac.com/wiki/index.php?title=Services_Menu – Kaydell