Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

102 lines
2.2 KiB

package Win32::Service;
#
# Service.pm
# Written by [email protected]
#
# subsequently hacked by Gurusamy Sarathy <[email protected]>
#
$VERSION = '0.05';
require Exporter;
require DynaLoader;
die "The Win32::Service module works only on Windows NT" if(!Win32::IsWinNT());
@ISA= qw( Exporter DynaLoader );
@EXPORT_OK =
qw(
StartService
StopService
GetStatus
PauseService
ResumeService
GetServices
);
=head1 NAME
Win32::Service - manage system services in perl
=head1 SYNOPSIS
use Win32::Service;
=head1 DESCRIPTION
This module offers control over the administration of system services.
=head1 FUNCTIONS
=head2 NOTE:
All of the functions return false if they fail, unless otherwise noted.
If hostName is an empty string, the local machine is assumed.
=over 10
=item StartService(hostName, serviceName)
Start the service serviceName on machine hostName.
=item StopService(hostName, serviceName)
Stop the service serviceName on the machine hostName.
=item GetStatus(hostName, serviceName, status)
Get the status of a service. The third argument must be a hash
reference that will be populated with entries corresponding
to the SERVICE_STATUS structure of the Win32 API. See the
Win32 Platform SDK documentation for details of this structure.
=item PauseService(hostName, serviceName)
=item ResumeService(hostName, serviceName)
=item GetServices(hostName, hashref)
Enumerates both active and inactive Win32 services at the specified host.
The hashref is populated with the descriptive service names as keys
and the short names as the values.
=back
=cut
sub AUTOLOAD
{
my($constname);
($constname = $AUTOLOAD) =~ s/.*:://;
#reset $! to zero to reset any current errors.
$!=0;
my $val = constant($constname);
if ($! != 0) {
if($! =~ /Invalid/) {
$AutoLoader::AUTOLOAD = $AUTOLOAD;
goto &AutoLoader::AUTOLOAD;
}
else {
($pack,$file,$line) = caller;
die "Your vendor has not defined Win32::Service macro $constname, used in $file at line $line.";
}
}
eval "sub $AUTOLOAD { $val }";
goto &$AUTOLOAD;
}
bootstrap Win32::Service;
1;
__END__