Bill Janssen <jans...@parc.com> wrote:

> For the [services] that are using PythonService.exe, I'd like to check
> to see whether the Python module for the service is still present.  Is
> there any way to retrieve the information about that from the service?

Here's what I came up with:

import sys, os, win32api, win32con, win32service
services = {}
mgr = win32service.OpenSCManager(None, None, 4)
try:
    svcinfo = win32service.EnumServicesStatus(mgr)
    for svc in svcinfo:
        svch = win32service.OpenService(mgr, svc[0], 
win32service.SERVICE_QUERY_CONFIG)
        try:
            config = win32service.QueryServiceConfig(svch)
            if config[3].endswith('PythonService.exe"'):
                klass = win32api.RegQueryValue(
                    win32con.HKEY_LOCAL_MACHINE,
                    "System\\CurrentControlSet\\Services\\%s\\PythonClass" % 
(svc[0],))
                classfile = os.path.splitext(klass)[0] + ".py"
                sys.stdout.write("%s %s\n" % (svc[0], os.path.exists(classfile))
        finally:
            win32service.CloseServiceHandle(svch)
finally:
    win32service.CloseServiceHandle(mgr)

Bill
_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to