Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Vova Golubkov                        2:5020/440     08 Nov 2000  18:24:00
 To : news.co.ru
 Subject : Win32::Service
 -------------------------------------------------------------------------------- 
 
 08 Nov 00 12:26, news.co.ru wrote to All:
 
  nr> Привет.
  nr> Hе подскажите как использовать GetStatus в библиотеке Win32::Service,
  nr> дока ссылается на Win32 SDK, которого я не имею. Hепонятно вот
  nr> что: GetStatus(hostname, servicename, status), где статус - must be a
  nr> hash reference that will be populated with entries corresponding to
  nr> the SERVICE_STATUS structure of the Win32 API. что же такое статус? не
  nr> кинет ли кто примерчик?
 
 Комментариев нету, но все довльно прозрачно.
 Описание структуры SERVICE_STATUS лежит на
 http://msdn.microsoft.com/library/psdk/winbase/services_9s36.htm
 
 =====
 use strict;
 use Win32::Service;
 
 my $host = ""; #localhost;
 my $ServiceName="eventlog";
 
 my %SERVICE_TYPE = (0x1 => "SERVICE_KERNEL_DRIVER",
                     0x2 => "SERVICE_FILE_SYSTEM_DRIVER",
                     0x10 => "SERVICE_WIN32_OWN_PROCESS",
                     0x20 => "SERVICE_WIN32_SHARE_PROCESS",
                     0x100 => "SERVICE_INTERACTIVE_PROCESS" );
 my %CURRENT_STATE = (   0x1 => "SERVICE_STOPPED",
                         0x2 => "SERVICE_START_PENDING",
                         0x3 => "SERVICE_STOP_PENDING",
                         0x4 => "SERVICE_RUNNING",
                         0x5 => "SERVICE_CONTINUE_PENDING",
                         0x6 => "SERVICE_PAUSE_PENDING",
                         0x7 => "SERVICE_PAUSED" );
 my %CONTROLS_ACCEPTED = (   0x1 => "SERVICE_ACCEPT_STOP",
                             0x2 => "SERVICE_ACCEPT_PAUSE_CONTINUE",
                             0x4 => "SERVICE_ACCEPT_SHUTDOWN",
                             0x8 => "SERVICE_ACCEPT_PARAMCHANGE",
                             0x10 => "SERVICE_ACCEPT_NETBINDCHANGE" );
 my $ERROR_SERVICE_SPECIFIC_ERROR = 1066;
 my %status;
 my $and;
 
 my $ccode = Win32::Service::GetStatus($host,$ServiceName,\%status);
 
 if ($ccode) {
     print "Service name:\t$ServiceName\n";
     print "Service type [$status{ServiceType}]:\t";
     for (keys %SERVICE_TYPE) {
         $and = $_ & $status{ServiceType};
         if ($and) {
             print "$SERVICE_TYPE{$and} ";
         }
     }
     print "\n";
     print "Current state
 [$status{CurrentState}]:\t$CURRENT_STATE{$status{CurrentState}}\n";
     print "Controls Accepted [$status{ControlsAccepted}]:\t";
     for (keys %CONTROLS_ACCEPTED) {
         $and = $_ & $status{ControlsAccepted};
         if ($and) {
             print "$CONTROLS_ACCEPTED{$and} ";
         }
     }
     print "\n";
     print "Win32ExitCode:\t$status{Win32ExitCode}";
     if ($status{Win32ExitCode} == $ERROR_SERVICE_SPECIFIC_ERROR) {
         print " (see service specific exit code)\n";
         print "ServiceSpecificExitCode:\t$status{ServiceSpecificExitCode}";
     }
     print "\n";
     print "CheckPoint:\t$status{CheckPoint}\n";
     print "WaitHint:\t$status{WaitHint}\n";
 }
 else
 {
     print "Cannot obtain information on service \"$ServiceName\"\n";
 }
 
 Vova
 
 ---
  * Origin: надо жить эпохою (2:5020/440)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Win32::Service   news.co.ru   08 Nov 2000 13:26:49 
 Win32::Service   Vova Golubkov   08 Nov 2000 18:24:00 
Архивное /ru.perl/22423a098ddb.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional