.Net/Mono 단독(서비스/Server?) C#에서 검출하는 경우 나.인터넷 응용 프로그램은 이미 실행중인 명령줄 args 다

StackOverflow https://stackoverflow.com/questions/810181

  •  03-07-2019
  •  | 
  •  

문제

내가 만들고 싶은 간단한 단일 명령행 응용 프로그램(서비스?) C#는 경우 그것을 실행,그것은 확인해 보면 이미 실행중이며,그렇다면,그것을 전달된 명령줄 args 을 이미 실행하는 인스턴스와 폐쇄 자체입니다.지금에서 이미 실행하는 인스턴스를 받을 수 있는 명령줄 인수 이벤트를 통해 다음과 같"대리인 무효 Command(string[]args);"또는 무언가는,그래서 관리할 수 있는 명령은 온라인을 통해 응용 프로그램을 통해 이벤트입니다.

예를 들어,포토샵에서 열면 사진을 위해 첫번째로,그것은 새 인스턴스 포토샵,하지만 열면 두 번째 사진,그것은지 확인하는 인스턴스의 포토샵은 이미 실행중이며,그것은,그것을 전달한 그림을 로드 인스턴스의 포토샵 그래서 그것을 피할 수 있습니다 비용이 많이 드는 부하가 시 포토샵의 모든 것을 다시...

또는 웹 브라우저에서,당신은 그것을 이렇게 설정할 수 있습니다면 당신은 당신.html 파일을 열고 그것을 새 탭에서,새로운 창 인스턴스입니다.

또는 많은 텍스트 편집기 설정하기만 하나 허용 인스턴스의 텍스트 편집기로 열리고 새로운 파일을 열,그것은 새 탭에서,새로운 창...

많은 음악 플레이어 winamp 이렇게 너무...

내가 결국 이러한 설정으로 서비스해야한다,그래서 지속적으로 듣는 명령줄 인수 후에,하지만 지금은 그것의 대부분도록을 관리할 수 있습의 열기는 특정 유형의 파일에 함께 하나의 단일 응용 프로그램,또는 다른 응용 프로그램을 통과하는 명령줄 인수의 하려는 파일을 열 수...

또한,당신이 알고 있는 경우는 더 좋은 방법 또는 api 습니다.Net 을 다시 완패는 모든 명령줄 args 전달,이벤트의 서비스는 항상,내가 있을 수 있습니다...그러나 나는 또한 다음과 같이 크로스-플랫폼 그래서 그것을 실행할 수 있습에서 리눅스/맥 모노는 경우에는 가능하지 않고,관리하는 둘 이상의 코드-기...

도움이 되었습니까?

해결책

이 문서에서 나를 구현하는 데 사용되는 정확한 기능은 당신이 찾고있는,그것을 전송할 수 있도록 명령뿐만 아니라.

단일 들 C#응용 프로그램-.NET2.0

다른 팁

우리가 뭔가를 포함를 사용하지만 아주 다른 목적으로 사용합니다.net 원격에서 1.0/1.1framework.기본적으로 우리를 사용하려 세마포어를 확인 우리만 실행하는 인스턴스입니다.당신이 원하는 대상 글로벌 네임스페이스하려는 경우,하나만 있 인스턴스가 기준 또는 지역 중 하나를 원하는 경우 사용자별 세션(터미널에서 서비스와 사용자의 빠른 전환 시나리오).

할 수 있다면 잠금 semphore,당신은 설정을 원격을 듣고 시작한 이벤트,그리고 다음에 계속 코드입니다.

할 수 없는 경우에는 잠금할 수 있습니다 다음 asssume 당신은 다른 인스턴스를 실행하는 경우에 당신은 열 원격 채널 다른 인스턴스를 통 args 및 종료됩니다.

당신이 시도할 수 있었을 사용하여 라는 mutex(명 그것은 그것을 다양한 시스템과 쉽게 식별 가능).와 함께 뮤텍스를 실행할 수 있습니다 인스턴스(지 않은 경우 mutex 존재하는 이름을 가진),또는 당신을 열 수 있고 기존 인스턴스 및 통과에서 당신의 매개 변수입니다.에 대한 사과를 아는 코드 샘플을,이것을 쓰입니다.

편집:nvrmnd.그냥을 다시 읽는 게시물,그리고 나는 생각하지 않는 이 당신을 위해 일한다고 크로스 플랫폼입니다.

Visual basic 이 내장되어 있습니다.을 살펴:

Microsoft.Visual basic.ApplicationServices.WindowsFormsApplicationBase--공용 이벤트 StartupNextInstance

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top