데스크톱 응용 프로그램으로 실행되는 프로그램이 있지만 Windows 서비스로 설치할 수도 있습니다. 설치는 GUI에서 "서비스로 설치"버튼을 사용하여 수행됩니다. 이 버튼에 대한 이벤트 핸들러는 다음과 같습니다 : 내가 지금하고 싶은 무엇Vista에서 서비스 설치 및 레지스트리 항목 추가 +
ProcessStartInfo psi = new ProcessStartInfo("sc", "description " +
this.ServiceName + " \"" +
((AssemblyDescriptionAttribute)attributes[0]).Description + "\"")
psi.CreateNoWindow = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
psi.Verb = "runas";
Process.Start(psi).WaitForExit();
는 말 아래에 몇 가지 추가 레지스트리 항목을 추가하는 것입니다 또한 높은 권한을 필요로
HKLM\SOFTWARE\MyCompany\Services
. 그러나 "REG ADD"명령을 사용하여 위에서 설명한 것과 동일한 절차를 사용하면 UAC 대화 상자가 두 번 이상 나타납니다. 나는 그것을 원하지 않습니다.
Windows 서비스를 설치하고 HKLM에서 레지스트리 항목을 추가하는 가장 좋은 방법은 UAC 프롬프트를 한 번만 사용하는 것입니다.
답변 해 주셔서 감사합니다. 이것은 명백한 해결책 인 것처럼 보이지만 코드가 공유 라이브러리에 있기 때문에 이것을 피하고자합니다. 배치 파일이나 exe와 같은 추가 구성 요소에 의존해야한다면 배포가 복잡해집니다. – Jeldrik