 |
 |

06-01-2003, 05:51 PM
|
 |
Senior Contributor
Retired Moderator * Expert *
|
|
Join Date: Jul 2000
Location: Toronto, Ontario, Canada
Posts: 1,410
|
|
Service class (.cls)
|
Hello all,
Here is a .cls that i put together that encapsulates all the basic service operation used.
- Start Service
- Stop Service
- Resume Service
- Pause Serivce
- Enumerate Dependent services (based on the Service Name)
- Enummerate service status for (Active, InActive, and All services)
also, it expose some of the basic service properties - Service Name
- Service Display Name
- Service State (Started, Stopped, Paused)
- Service Type (The service is a device driver, The service is a file system driver ...)
with basic error control and messaging.
[API's used]
Code:
Public Declare Function OpenService Lib "advapi32.dll" Alias "OpenServiceA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal dwDesiredAccess As Long) As Long
Public Declare Function StartService Lib "advapi32.dll" Alias "StartServiceA" (ByVal hService As Long, ByVal dwNumServiceArgs As Long, ByVal lpServiceArgVectors As Long) As Long
Public Declare Function ControlService Lib "advapi32.dll" (ByVal hService As Long, ByVal dwControl As Long, lpServiceStatus As SERVICE_STATUS) As Long
Public Declare Function EnumDependentServices Lib "advapi32.dll" Alias "EnumDependentServicesA" (ByVal hService As Long, ByVal dwServiceState As Long, lpServices As ENUM_SERVICE_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long, lpServicesReturned As Long) As Long
Public Declare Function OpenSCManager Lib "advapi32.dll" Alias "OpenSCManagerA" (ByVal lpMachineName As String, ByVal lpDatabaseName As String, ByVal dwDesiredAccess As Long) As Long
Public Declare Function EnumServicesStatus Lib "advapi32.dll" Alias "EnumServicesStatusA" (ByVal hSCManager As Long, ByVal dwServiceType As Long, ByVal dwServiceState As Long, lpServices As Any, ByVal cbBufSize As Long, pcbBytesNeeded As Long, lpServicesReturned As Long, lpResumeHandle As Long) As Long
Public Declare Function CloseServiceHandle Lib "advapi32.dll" (ByVal hSCObject As Long) As Long
Public Declare Function lstrcpy Lib "kernel32.dll" Alias "lstrcpyA" (szDest As String, szcSource As Long) As Long
[references:]
www.AllApi.net
MSDN Service API's
if you have any questions or suggestions, let me know.
Regan
|
__________________
winsock siteHERE||EliteVBHERE||C++ & VB Markup UtilityHERE
|

06-01-2003, 06:33 PM
|
 |
Senior Contributor
Retired Moderator * Expert *
|
|
Join Date: Jul 2000
Location: Toronto, Ontario, Canada
Posts: 1,410
|
|
Enabling vbscripts with the services class...
either compile or download the Service class in this project and then simple user the CreateObject or GetObject VBscript functions to retrieve reference to this class
example code (list all acitive and inactive services):
Code:
' create a services.services object
' get the services (active) and itterate the services
Dim y
Dim strServiceList
Const SERVICE_ACTIVE = &H1
Const SERVICE_INACTIVE = &H2
' get reference to the object
Set objServices = createobject("serviceSVR.services")
' retrieve all services installed
objServices.GetServices SERVICE_ACTIVE Or SERVICE_INACTIVE
' enumerate the service list
For y = 0 To clng(objServices.ServiceCount) - 1
wscript.echo objServices.GetDisplayName(clng(y)) & " - "
Next
example code (START and STOP a service):
Code:
' create a services.services object
' get the services (active) and iterate the services
Set args = wscript.arguments
If args.count <> 2 Then
wscript.echo "services.vbs <start|stop> <service name>"
End If
'' get reference to the object
Set objServices = createobject("serviceSVR.services")
If args(0) = "start" Then
If objServices.Start_Service("netman") Then
wscript.echo "Service Started"
Else
wscript.echo objServices.LastErrorDescription
End If
ElseIf args(0) = "stop" Then
If objServices.Stop_Service("netman") Then
wscript.echo "Service Stopped"
Else
wscript.echo objServices.LastErrorDescription
End If
Else
wscript.echo "First parameter is incorrect"
End If
'[sample output]
'C:\Documents And Settings\UseTheForce>cscript C:\SCRIPTS\services.vbs
'
'services.vbs <start|stop> <service name>
'
'C:\>cscript C:\SCRIPTS\services.vbs start netman
'
'Service Started
'
'C:\>cscript C:\SCRIPTS\services.vbs start netman
'
'An instance of the service Is already running.
'
'C:\Documents And Settings\UseTheForce>cscript C:\SCRIPTS\services.vbs Stop netman
'
'Service Stopped
enjoy,
Regan
|
__________________
winsock siteHERE||EliteVBHERE||C++ & VB Markup UtilityHERE
Last edited by usetheforce2; 06-02-2003 at 11:53 AM.
|
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
|
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
|
|
|
|
 |
|