2010-06-16 4 views
6

VLC conflict 때문에 응용 프로그램 시작시 Windows 고급 텍스트 서비스를 해제해야합니다. 거기에 특별한 API가 있습니까? 기본 권한이있는 사용자가 사용할 수 있습니까?응용 프로그램 시작시 Windows 서비스 사용 안 함

+3

자신의 서비스가 아닌 서비스를 비활성화하는 것은 정중하지 않습니다. 사용자가이 서비스를 실행해야 할 수도 있습니다. 최소한 사용자에게 어딘가에 (도움말 화면, readme 등) 알려야합니다. – Luke

답변

2
ServiceController _ServiceController = new ServiceController([NameService]); 
if (!_ServiceController.ServiceHandle.IsInvalid) 
{ 
    _ServiceController.Stop(); 
    _ServiceController.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromMilliseconds(uConstante.CtTempoEsperaRespostaServico)); 
} 
+0

올바른 코드 : '_ServiceController.ServiceHandle! = null'은'! _ServiceController.ServiceHandle.IsInvalid && _ServiceController.Status! = ServiceControllerStatus.Stopped'로 바뀝니다 –

1

이의 ServiceController 클래스를 사용할 수 있습니다. 링크 된 문서 페이지에는 코드 샘플이 있습니다.

0

"net stop service-name"서비스를 중지하거나 "net start service-name"을 실행하여 서비스를 시작하기 만하면됩니다. "net start"를 콘솔 (cmd.exe)에 입력하여 모든 서비스를 나열하십시오.

서비스를 활성화/비활성화하려면 관리자 권한이 필요합니다.

21

이 질문의 제목은 "Disable Windows service ..."이지만 답변은 모두 서비스를 중지하는 방법을 알려줍니다.

당신이 구글에서 찾을 것은이 같은 것을 사용하여 서비스를 사용하지 않도록 레지스트리를 업데이트 할 수 있다는 것입니다 대부분 : 그 방법을 시도하지 않은 있지만 작동 것처럼 나타납니다

RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Services\[YourServiceName]", true); 
key.SetValue("Start", 4); 

을 . 또한 sc.exe를 사용하여 서비스를 비활성화하는 다른 방법을 생각해 냈습니다.

Process sc = Process.Start("sc.exe", "config [YourServiceName] start= disabled"); 
+2

+1이 질문에 실제로 대답하는 유일한 답변입니다 – BradleyDotNET

관련 문제