Starting Win32 Service

placid Bulkan at gmail.com
Wed Sep 27 22:46:14 EDT 2006


placid wrote:
> Tim Golden wrote:
> > [placid]
> > | Using Tim Golden's wmi module you can get the service names
> > |
> > | import wmi
> > | c = wmi.WMI ()
> > | stopped_services = c.Win32_Service (StartMode="Auto", State="Stopped")
> > | if stopped_services:
> > |   for s in stopped_services:
> > |     print s.Caption, "service is not running"
> > | else:
> > |   print "No auto services stopped"
> > |
> > | but how do i start services that are stopped?
> >
> > <code>
> > import wmi
> > c = wmi.WMI ()
> > for method in c.Win32_Service._methods:
> >   print method
> >
> > #
> > #... includes StartService
> > #
> >
> > print c.Win32_Service.StartService
> >
> > # <function StartService () => (ReturnValue)>
> >
> > #
> > # Therefore, to start all non-running auto services (!)
> > #
> > for service in c.Win32_Service (StartMode="Auto", State="Stopped"):
> >   print service.Caption
> >   service.StartService ()
> >
> > </code>
> >
> > TJG
> >
>
> Thanks for that.
>
> Now i was trying to use service.ChangeStartMode but each time i pass in
> an argument i get the error;
>
> #TypeError: __call__() takes exactly 1 argument (2 given)
>
> but;
>
> >>> print service.ChangeStartMode
> <function ChangeStartMode (StartMode) => (ReturnValue)>
>
> ChangeStartMode needs an argument!
>
> What im i doing wrong here?

And to answer my own question, the way to pass in arguments is via the
key=value way so;

service.ChangeStartMode(StartMode = "Automatic")

Cheers

P.S: Dont you just love trial and error/brute force?




More information about the Python-list mailing list