2009-06-01 2 views
1

Windows 서비스 등록을위한 MSDN (ms-help : //MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/dllproc/base/createservice)에 설명 된 방법을 사용합니다. .HTM) 및 제공된 예제와 비슷한 코드를 사용하여 :Windows 서비스 쿼리

schService = CreateService( 
    schSCManager,    // SCManager database 
    TEXT("Sample_Srv"),  // name of service 
    lpszDisplayName,   // service name to display 
    SERVICE_ALL_ACCESS,  // desired access 
    SERVICE_WIN32_OWN_PROCESS, // service type 
    SERVICE_DEMAND_START,  // start type 
    SERVICE_ERROR_NORMAL,  // error control type 
    szPath,     // path to service's binary 
    NULL,      // no load ordering group 
    NULL,      // no tag identifier 
    NULL,      // no dependencies 
    NULL,      // LocalSystem account 
    NULL);      // no password 

내 문제는 서비스가 등록되고 서비스가 msconfig.msc에서 완벽했다 작동하지만 복구 옵션에서 '아무 작업 안 함'이다. 내가 프로그램 적으로 이것을 바꿀 수있는 방법이 있습니까?

답변

0

sc 명령을 사용하여 설정할 수 있습니다.

sc failure "servicename" reset= 0 actions= restart/30000//// 

이 0일 (결코) 후 실패 카운터를 재설정하도록 지시하고, 두 번째 이후 실패에 대한 아무런 조치를 취하지와 첫 번째 실패에 30 초 후에 다시 시작됩니다.

0

더 MSDN 파고 수행 - 찾을 특히 쉽지 않았다하지만 PARAM의 dwInfoLevel이 SERVICE_CONFIG_FAILURE_ACTIONS (2) 다음 lpInfo 경우는

ChangeServiceConfig2 (http://msdn.microsoft.com/en-us/library/ms681988(VS.85).aspx)

BOOL WINAPI ChangeServiceConfig2(
    __in  SC_HANDLE hService, 
    __in  DWORD dwInfoLevel, 
    __in_opt LPVOID lpInfo 
); 

나타납니다 매개 변수는 SERVICE_FAILURE_ACTIONS 구조체에 대한 포인터입니다.

SERVICE_FAILURE_ACTIONS 구조 당신이 원하는대로 당신은 '옵션'서비스 설정을 구성 할 수 있습니다 http://msdn.microsoft.com/en-us/library/ms685939(VS.85).aspx

.