C# 윈도우즈 서비스 시작 방법에 대한 문제 분석

1959 단어
C# 윈도우즈 서비스를 시작하는 방법은 무엇일까요?C# 서비스 유형이 Disabled인 윈도우즈 서비스를 시작하면 어떤 문제가 발생할까요?그러면 본고는 C# 윈도우즈 서비스를 시작하는 방법에 대한 내용을 소개합니다.
C# 윈도우즈 서비스를 시작하는 방법은 무엇입니까?자, 시작합시다.
C# 윈도우즈 서비스를 시작하는 유래: 우리는 C# 코드에 이미 존재하는 윈도우즈 서비스를 시작하는 것을 알고 있다. 우리는 이런 코드로 완성할 수 있다.
 
  
//ACPI is an example of service name
System.ServiceProcess.ServiceController
service = new ServiceController("ACPI");
service.Start();

C# 윈도우즈 서비스를 시작하는 데 문제가 발생했습니다. 서비스 유형이 Disabled이면 start 방법이 이상을 일으킬 수 있습니다.일반적으로 서비스 시작 유형을 수정한 다음 서비스를 시작합니다.
 
  
using Microsoft.Win32;
string keyPath = @"SYSTEM\CurrentControlSet\Services\ACPI";
RegistryKey key = Registry.LocalMachine.OpenSubKey(keyPath, true);
int val = -1;
bool bConverted = Int32.TryParse(key.GetValue("Start").
ToString(), out val); if(bConverted){
if ( val == 4){key.SetValue("Start", 3);
}
}
System.ServiceProcess.ServiceController
service = new ServiceController("ACPI");
service.Start();

서비스 수정 시작 방식을 요약하면 다음과 같은 두 가지 방법이 있습니다.
C# 윈도우즈 서비스 시작 1.레지스트리 수정
윈도우즈 서비스의 등록표 주소는 다음과 같습니다.
[\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName]
여기서 하위 키 Start는 부팅 유형을 나타냅니다.클래스: Start = dword: 00000002
2는 Automatic, 3은 Manul, 4는 Disabled
C# 윈도우즈 서비스 시작 2.API 사용
 
  
BOOL ChangeServiceConfig(
SC_HANDLE hService,
DWORD dwServiceType,
DWORD dwStartType,
DWORD dwErrorControl,
LPCTSTR lpBinaryPathName,
LPCTSTR lpLoadOrderGroup,
LPDWORD lpdwTagId,
LPCTSTR lpDependencies,
LPCTSTR lpServiceStartName,
LPCTSTR lpPassword,
LPCTSTR lpDisplayName
);

C#윈도우즈 서비스를 시작하는 방법에 대한 간단한 설명은 여기까지입니다. C#윈도우즈 서비스를 배우고 이해하는 데 도움이 되었으면 합니다.

좋은 웹페이지 즐겨찾기