python - Kan ikke åbne 'calc.exe' fra windows service

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har oprettet en windows service ved hjælp af python s pywin32 pakke.
Jeg ønsker at køre 'calc.exe' efter at tjenesten kører.
Jeg forsøgte både 'os.system ()' og 'subprocess', under SvcDoRun endnu ikke succesfuldt.


Der er nye processer popping (præcis 2, som viser, at de faktiske funktionsopkald er vellykkede), der går under navnet 'Vælg en applikation'. Disse processer henvender sig til 'OpenWith.exe', der er placeret under 'System32' -mappen.
Alligevel åbnes eller vises ingen 'calc.exe' -proces.


Min kode:
    import win32service
    importer win32serviceutil
    importer win32event
    import os
    import subprocess


class PySvc(win32serviceutil.ServiceFramework):
    # you can NET START/STOP the service by the following name
    \_svc\_name\_ = "PySvcDor"
    # this text shows up as the service name in the Service
    # Control Manager (SCM)
    \_svc\_display\_name\_ = "Python Test Service"
    # this text shows up as the description in the SCM
    \_svc\_description\_ = "This service writes stuff to a file"

    def \_\_init\_\_(self, args):
        win32serviceutil.ServiceFramework.\_\_init\_\_(self, args)
        # create an event to listen for stop requests on
        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)

        # core logic of the service

    def SvcDoRun(self):
        import servicemanager

        os.system('C:WindowsSystem32calc.exe')
        subprocess.call(['C:WindowsSystem32calc.exe'])

    def SvcStop(self):
        # tell the SCM we're shutting down
        self.ReportServiceStatus(win32service.SERVICE\_STOP\_PENDING)
        # fire the stop event
        win32event.SetEvent(self.hWaitStop)


if \_\_name\_\_ == '\_\_main\_\_':
    win32serviceutil.HandleCommandLine(PySvc)

Bedste reference