home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _9762f245819f5a8e018d21d6cb351dd2 < prev    next >
Text File  |  2000-03-15  |  2KB  |  100 lines

  1. package Win32::Service;
  2.  
  3. #
  4. # Service.pm
  5. # Written by Douglas_Lankshear@ActiveWare.com
  6. #
  7. # subsequently hacked by Gurusamy Sarathy <gsar@activestate.com>
  8. #
  9.  
  10. $VERSION = '0.04';
  11.  
  12. require Exporter;
  13. require DynaLoader;
  14.  
  15. die "The Win32::Service module works only on Windows NT" if(!Win32::IsWinNT());
  16.  
  17. @ISA= qw( Exporter DynaLoader );
  18. @EXPORT_OK =
  19.     qw(
  20.     StartService
  21.     StopService
  22.     GetStatus
  23.     PauseService
  24.     ResumeService
  25.     GetServices
  26.     );
  27.  
  28. =head1 NAME
  29.  
  30. Win32::Service - manage system services in perl
  31.  
  32. =head1 SYNOPSIS
  33.  
  34.     use Win32::Service;
  35.  
  36. =head1 DESCRIPTION
  37.  
  38. This module offers control over the administration of system services.
  39.  
  40. =head1 FUNCTIONS
  41.  
  42. =head2 NOTE:
  43.  
  44. All of the functions return FALSE (0) if they fail, unless otherwise noted.
  45. If hostName is an empty string, the local machine is assumed.
  46.  
  47. =over 10
  48.  
  49. =item StartService(hostName, serviceName)
  50.  
  51. Start the service serviceName on machine hostName.
  52.  
  53. =item StopService(hostName, serviceName)
  54.  
  55. Stop the service serviceName on the machine hostName.
  56.  
  57. =item GetStatus(hostName, serviceName, status) 
  58.  
  59. Get the status of a service.
  60.  
  61. =item PauseService(hostName, serviceName)
  62.  
  63. =item ResumeService(hostName, serviceName)
  64.  
  65. =item GetServices(hostName, hashref) 
  66.  
  67. Enumerates both active and inactive Win32 services at the specified host.
  68. The hashref is populated with the descriptive service names as keys
  69. and the short names as the values.
  70.  
  71. =back
  72.  
  73. =cut
  74.  
  75. sub AUTOLOAD
  76. {
  77.     my($constname);
  78.     ($constname = $AUTOLOAD) =~ s/.*:://;
  79.     #reset $! to zero to reset any current errors.
  80.     $!=0;
  81.     my $val = constant($constname);
  82.     if ($! != 0) {
  83.     if($! =~ /Invalid/) {
  84.         $AutoLoader::AUTOLOAD = $AUTOLOAD;
  85.         goto &AutoLoader::AUTOLOAD;
  86.     }
  87.     else {
  88.         ($pack,$file,$line) = caller;
  89.         die "Your vendor has not defined Win32::Service macro $constname, used in $file at line $line.";
  90.     }
  91.     }
  92.     eval "sub $AUTOLOAD { $val }";
  93.     goto &$AUTOLOAD;
  94. }
  95.  
  96. bootstrap Win32::Service;
  97.  
  98. 1;
  99. __END__
  100.