设为首页 加入收藏

TOP

VC关于windows服务状态更改(一)
2013-07-22 18:15:04 来源: 作者: 【 】 浏览:213
Tags:关于 windows 服务 状态 更改

 

  else printf("Service description updated successfully.\n");

  CloseServiceHandle(schService);

  CloseServiceHandle(schSCManager);

  }

  // Purpose:

  //   Disables the service.

  //

  // Parameters:

  //   None

  //

  // Return value:

  //   None

  //

  VOID __stdcall DoDisableSvc()

  {

  SC_HANDLE schSCManager;

  SC_HANDLE schService;

  // Get a handle to the SCM database.

  schSCManager = OpenSCManager(

  NULL,                    // local computer

  NULL,                    // ServicesActive database

  SC_MANAGER_ALL_ACCESS);  // full access rights

  if (NULL == schSCManager)

  {

  printf("OpenSCManager failed (%d)\n", GetLastError());

  return;

  }

  // Get a handle to the service.

  schService = OpenService(

  schSCManager,            // SCM database

  szSvcName,               // name of service

  SERVICE_CHANGE_CONFIG);  // need change config access

  if (schService == NULL)

  {

  printf("OpenService failed (%d)\n", GetLastError());

  CloseServiceHandle(schSCManager);

  return;

  }

  // Change the service start type.

  if (! ChangeServiceConfig(

  schService,        // handle of service

  SERVICE_NO_CHANGE, // service type: no change

  SERVICE_DISABLED,  // service start type

  SERVICE_NO_CHANGE, // error control: no change

  NULL,              // binary path: no change

  NULL,              // load order group: no change

  NULL,              // tag ID: no change

  NULL,              // dependencies: no change

  NULL,              // account name: no change

  NULL,              // password: no change

  NULL) )            // display name: no change

  {

  printf("ChangeServiceConfig failed (%d)\n", GetLastError());

  }

  else printf("Service disabled successfully.\n");

  CloseServiceHandle(schService);

  CloseServiceHandle(schSCManager);

  }

  //

  // Purpose:

  //   Enables the service.

  //

  // Parameters:

  //   None

  //

  // Return value:

  //   None

  //

  VOID __stdcall DoEnableSvc()

  {

  SC_HANDLE schSCManager;

  SC_HANDLE schService;

  // Get a handle to the SCM database.

  schSCManager = OpenSCManager(

  NULL,                    // local computer

  NULL,                    // ServicesActive database

  SC_MANAGER_ALL_ACCESS);  // full access rights

  if (NULL == schSCManager)

  {

  printf("OpenSCManager failed (%d)\n", GetLastError());

  return;

  }

  // Get a handle to the service.

  schService = OpenService(

  schSCManager,            // SCM database

  szSvcName,               // name of service

  SERVICE_CHANGE_CONFIG);  // need change config access

  if (schService == NULL)

  {

  printf("OpenService failed (%d)\n", GetLastError());

  CloseServiceHandle(schSCManager);

  return;

  }

  // Change the service start type.

  if (! ChangeServiceConfig(

  schService,            // handle of service

  SERVICE_NO_CHANGE,     // service type: no change

  SERVICE_DEMAND_START,  // service start type

  SERVICE_NO_CHANGE,     // error control: no change

  NULL,                  // binary path: no change

  NULL,                  // load order group: no change

  NULL,                  // tag ID: no change

  NULL,                  // dependencies: no change

  NULL,                  // account name: no change

  NULL,                  // password: no change

  NULL) )                // display name: no change

  {

  printf("ChangeServiceConfig failed (%d)\n", GetLastError());

  }

  else printf("Service enabled successfully.\n");

  CloseServiceHandle(schService);

  CloseServiceHandle(schSCManager);

  }

  //

  // Purpose:

  //   Updates the service description to "This is a test description".

  //

  // Parameters:

  //   None

  //

  // Return value:

  //   None

  //

  VOID __stdcall DoUpdateSvcDesc()

  {

  SC_HANDLE schSCManager;

  SC_HANDLE schService;

  SERVICE_DESCRIPTION sd;

  LPTSTR szDesc = TEXT("This is a test description");

  // Get a handle to the SCM database.

  schSCManager = OpenSCManager(

  NULL,                    // local computer

  NULL,                    // ServicesActive database

  SC_MANAGER_ALL_ACCESS);  // full access rights

  if (NULL == schSCManager)

  {

  printf("OpenSCManager failed (%d)\n", GetLastError());

  return;

  }

  // Get a handle to the service.

  schService = OpenService(

  schSCManager,            // SCM database

  szSvcName,               // name of service

  SERVICE_CHANGE_CONFIG);  // need change config access

  if (schService == NULL)

  {

        

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇VC选项卡控件的使用方法 下一篇VC进程通信之共享存储区

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: