2011-09-20 3 views
0

시작할 때 내 프로그램을 어떻게 실행시킬 수 있는지 누군가가 나에게 설명 할 수 있다면 방황하고 있었습니까? 내 프로그램은 서버에서 실행해야하는 작은 WPF UI가있는 C# WCF이며 서버가 다시 시작될 때나 다른 이유로 인해 프로그램이 시작되도록해야합니다.프로그램 시작 (Windows 시작)

주위를 둘러 보았습니다. 레지스트리 키를 사용해야하지만 레지스트리 키를 사용하는 방법에 익숙하지 않은 것으로 보입니다. 누군가이 방법을 사용해 설명해 주실 수 있습니까? VS2010을 사용하여 설치 프로그램을 만들고 설치시 레지스트리 키를 설정하고 싶습니다. :)

P. 응용 프로그램을 Windows 서비스로 만들고 싶지 않고 사용자의 시작 폴더에 넣을 수 없습니다 (서버가 다시 시작되고 아무도 로그인하지 않으면 어떻게됩니까?)

+2

이것은 정확히 Windows 서비스를위한 것입니다. 그래서 그것은 질문을 구걸 ... 왜 당신은 Windows 서비스를 사용하고 싶지 않아? –

+0

http://www.pctools.com/guides/registry/detail/109/ http://msdn.microsoft.com/en-us/library/aa266445(v=vs.60).aspx 이 프로그램을 설치할 때이 값을 레지스트리에 기록하십시오. – Thinhbk

+0

@KirkWoll Windows 서비스와 UI는 좋은 조합이 아닙니다. 시작 레지스트리 위치 중 하나에 UI exe를 넣는 것만으로도 GUI에 가장 적합 할 것입니다. – kenny

답변

5

실행할 항목을 추가하십시오. :

http://www.geekpedia.com/tutorial151_Run-the-application-at-Windows-startup.html

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 

rkApp.SetValue("MyApp", Application.ExecutablePath.ToString()); 

UPDATE : 당신의 접근 방식이 근본적으로 결함이 나타납니다 때문에 좀 더,이 아마 도움이되지 않습니다 생각 후. 누군가 UI를 실행하려면 로그인해야합니다. 방법에 대한 솔루션 :

(다른 사람들이 제안한대로) 서비스를 다시 Windows 서비스로 푸시합니다. WPF UI 조각의 경우 WCF 서비스를 자체 프로젝트로 호스팅하는 exe와 별도로 만듭니다. UI가 서비스를 관리/모니터하는 데 사용할 수있는 또 다른 서비스 엔드 포인트 계약 만 노출하면됩니다.

다른 컴퓨터에서 서버를 모니터링 할 수있는 가능성을 열어줍니다. 또한 서버에 동시에 로그인하는 사람 (여러 환경에서 발생할 수있는 시나리오)과 서비스 호스트의 여러 인스턴스를 돌리는 것에 대해 걱정할 필요가 없습니다.

관련 문제