2014-03-24 2 views
10

Windows 8에서 Windows 서비스를 실행하고 있습니다. 이 서비스는Windows 서비스에서 Process.Start가 호출 될 때 작동하지 않습니다.

Process.Start(exePath); 

하여 프로그램을 시작하기로되어 그러나 프로세스가 즉시 종료됩니다 - Main 프로 시저 심지어 첫 번째 줄은 실행되지 않습니다. 전에 Windows 7에서 동일한 서비스에서 동일한 프로세스를 실행하면 모든 것이 정상적으로 작동했습니다.

다시 작동 시키려면 어떻게해야합니까? Windows 서비스에서 프로세스를 올바르게 시작하는 방법은 무엇입니까?

+0

안녕하세요, 동일한 문제에 직면하고 있습니다. 로컬 시스템 계정에서 Windows 7 시스템에서 Windows 서비스를 실행하고 있습니다. 그 과정은 전혀 시작되지 않았습니다. 어떤 도움을 주시면 감사하겠습니다. – Arti

답변

9

해결책을 찾았습니다. 프로세스는 다음과 같이 시작되어야합니다 :

ProcessStartInfo info = new ProcessStartInfo(exePath); 
info.CreateNoWindow = true; 
info.UseShellExecute = false; 
Process.Start(info); 

어떤 이유로 시스템 배경에 쉘 창을 만들 때 권한이 문제가됩니다.

+2

이것은 당신의 문제에 대한 해결책이지만 당신이 물어 본 질문에 대한 대답은 거의 아닙니다. 당신은 진짜 세부 사항을 제공하지 않았고 마술에 기초한 것으로 보이는 대답을 제시했습니다. 이유에 대한 설명이 없습니다. 그리고 그것은 자답 Q & A 질문이었습니다. 앞으로 어떤 사람에게 유용할까요? 당신이 할 수있는 일은 누군가가 문제를 재현 할 수있는 충분한 정보를 제공하는 것입니다. 그렇다면 좋은 대답을 얻고 이해를 얻을 수 있습니다. 서서 당신은이 마법 주문을 남기게 될 것입니다. –

+3

나는 그 해답을 찾았지만, 어떤 것도 발견되지 않았다. 그런 다음 https://groups.google.com/forum/#!msg/comp.windows.misc/E93qPCdaV4k/f1YIwTjwzGcJ 링크를 통해이 솔루션을 발견했습니다. 그것은 C++과 일부 알려지지 않은 라이브러리에 대한 링크입니다. 명확하지는 않지만, "CREATE_NO_WINDOW"플래그가있는 유일한 (매우) 유용한 것이 었습니다.이 솔루션을 통해 다른 사람들과 공유하고 싶었 기 때문에 더 빨리 찾을 수있었습니다. 나는 또한 더 깊은 설명을 고맙게 여길 것이다. – frakon

+0

당신은 내 요점을 이해하지 못합니다. 이것은 어쩌면 문제의 해결책 일 수 있습니다. 그러나 당신이 물어 본 질문에 대한 대답은 아니며 실용적인 세부 사항을 포함하고 있지 않습니다. 당신이 물어 본 질문을 토대로 누구가이 문제를 어떻게 해결할 것입니까? 아마도 당신은 질문을 개선해야합니다. 그렇지 않으면, 내 생각에, 이것은 다소 무의미합니다. –

-3

프로세스 인스턴스에서 WaitForExit 메소드를 사용하면 시간이 경과하거나 프로세스가 종료 될 때까지 대기하도록 지시합니다.

See this MSDN link for more.

+0

프로세스는 12ms와 같이 종료됩니다. 금방. 코드가 실행되지 않습니다. – frakon

관련 문제