How do I start/stop/create/remove/check a service?

From NSIS Wiki
Jump to navigationJump to search

There are currently 6 known methods to handle services using NSIS scripting:

  • Use Sunjammer's services plug-in: Services.zip (20 KB).
  • Use dselkirk's NSIS Service Lib.
  • Use sl's nsSCM
  • Use doberlec's all-in-one Swiss scripting knife - Nopey.
  • Use Speed78's NSIS Simple Service Plugin
  • Execute the NET command (use Exec, ExecWait or nsExec).
  • Execute your service EXE with special command line switches telling it what to do (use Exec, ExecWait or nsExec).
  • Execute sc.exe that comes with WinXP (C:\windows\system32\sc.exe). Also allows to define specific user account to run the service.


Addition to Sunjammer's services plug-in to autostart services

// in sendservicecommand.c
else if (stricmp("autostart",command) == 0)
   {
    okay = ChangeServiceConfig(hService,
     SERVICE_NO_CHANGE,SERVICE_AUTO_START,SERVICE_NO_CHANGE ,NULL,NULL,NULL,NULL,NULL,NULL,NULL );
   }
   else if (stricmp("manualstart",command) == 0)
   {
    okay = ChangeServiceConfig(hService,
     SERVICE_NO_CHANGE,SERVICE_DEMAND_START,SERVICE_NO_CHANGE ,NULL,NULL,NULL,NULL,NULL,NULL,NULL );
   }