/** * Ask the ServiceControlManager to stop the service. * * @return true on success */ public boolean stop() throws Exception { Advapi32 advapi32; SC_HANDLE serviceManager, service; SERVICE_STATUS serviceStatus; boolean success = false; advapi32 = Advapi32.INSTANCE; serviceManager = openServiceControlManager(null, WinNT.GENERIC_EXECUTE); if (serviceManager != null) { service = advapi32.OpenService(serviceManager, serviceName, WinNT.GENERIC_EXECUTE); if (service != null) { serviceStatus = new SERVICE_STATUS(); success = advapi32.ControlService(service, Winsvc.SERVICE_CONTROL_STOP, serviceStatus); advapi32.CloseServiceHandle(service); } advapi32.CloseServiceHandle(serviceManager); } return (success); }