지정된 응용 프로그램으로 파일을 시작하고 시작한 프로그램을 즉시 맨 앞쪽 창으로 만들고 싶습니다.최근에 시작한 응용 프로그램의 PID를 가져 오는 가장 간단한 방법
NSRunningApplication* app = [NSRunningApplication
runningApplicationWithProcessIdentifier: PID];
[app activateWithOptions: NSApplicationActivateAllWindows];
:
[[NSWorkspace sharedWorkspace] openFile:fileName withApplication:appName];
을 그리고 난 그 시작 응용 프로그램의 PID를 얻을 수 있다면, 나는 그 맨 앞에 해당 응용 프로그램을 만들기 위해이 작업을 수행 할 수 :
나는 다음과 같이 나는이 작업을 수행 할 수 있다는 것을 알고
내가 가진 질문은 다음과 같습니다. 시작한 직후에이 응용 프로그램의 PID를 가져 오는 가장 간단하고 신속하며 가장 신뢰할 수있는 방법은 무엇입니까? 그래서이 응용 프로그램이 최전선인지 확인할 수 있습니까?
이것은 처음 보이는 것처럼 간단하지 않습니다. 예를 들어 Carbon 호출을 사용하여 PID를 얻거나 NSRunningApplication
을 통해 액세스 할 수있는 응용 프로그램 사전을 통해 프로세스 이름이 필요합니다. 그러나 일반적으로 프로세스 이름이 무엇인지는 알 수 없으며 경우에 따라 프로세스 이름이 빈 문자열입니다.
또한이 동일한 응용 프로그램의 다른 인스턴스가 이미 실행 중일 수 있으며 방금 시작한 응용 프로그램의 특정 인스턴스의 PID를 항상 가져 오려고합니다.
누구나 현재 출시 된 응용 프로그램의 PID를 얻을 수있는 확실하고 확실한 방법을 제안 할 수 있습니까?
또는 지정된 응용 프로그램과 함께 지정된 파일을 실행하여 응용 프로그램이 항상 최전선 응용 프로그램으로 열리는 방법이 있습니까?
시작한 앱 하지만 여전히 동일한 문제가 있습니다. 앱의 'ProcessSerialNumber'를 검색하기 위해 프로세스 이름이 필요하기 때문에 앱의 PID를 가져 오는 방법에 대해 위에서 설명한 것과 동일한 경쟁 조건이 존재합니다. – HippoMan