2012-04-12 4 views
3

저는 Windows 서비스에 인수를 전달하는 방법을 알고 싶습니다. 문제는 Windows 응용 프로그램을 개발 한 다음 Onstart() 메서드에서 호출 한 것입니다. 이제 다른 프로젝트에서 특정 함수를 호출하고 싶습니다.C#에서 Windows 서비스에 인수를 전달하는 방법은 무엇입니까?

protected override void OnStart(string[] args) 
     { 

      Process.Start("C:\\Program Files\\macro.exe"); 

     } 

인수를 사용하여 macro.exe 프로젝트 내부에서 함수를 호출하려고합니다. 당신이 서비스에 전달 된 인수를 사용하려면 어떤 제안

답변

2

, 당신은 시도 할 수 있습니다 : 당신이 시작 과정에 대한 더 나은 제어 할 수있는 대답 @Tudor 사용하는 것을

Process.Start(@"C:\Program Files\macro.exe", String.Join(" ", args)) 

주를, 입력/출력/오류, 쇼를 리디렉션/창과 다른 많은 멋진 것들을 숨 깁니다.

0

다른 EXE에서 함수를 호출 할 수 있는지 궁금합니다. 일반적인 DLL을 만들고 macro.exe와 자신의 응용 프로그램에서 참조 할 수 있습니다. 선택 사항이 아니라면 소켓이나 파일 시스템을 사용하여 EXE와 통신 할 수 있습니다. 예를 들어. EXE 2 커맨드 라인 인수 "MyFunction", "Hello"위의 이전 주석과 같이 표시하고 Exe는 인수가 Hello로 MyFunction을 호출하고 EXE가 미리 정의 된 필드에 결과를 돌려 주어야한다고 추론합니다. 경로를 읽고 파일에서 읽습니다.

Exe가 실행 중이고 명령 줄을 전달할 수없는 경우 Exe가 입력 파일을 스캔하여 앱과 같은 외부 소스에서 명령을 계속받을 수 있습니다. 아니면 더 나은 명령을 실행하는 포트에서 수신 대기합니다.

또 다른 별 대안이 있을지 모르겠습니다.

관련 문제