подскажите оболочку в оконном сервисе через python - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу вызвать оболочку в службе Windows через Python.Ниже мой код.Он запускается, но вместо отображения отображается приглашение.Большое спасибо!

import win32service
import win32serviceutil
import win32event 
import requests
import sys
import subprocess
import os

class PySvc(win32serviceutil.ServiceFramework):
    _svc_name_ = "ServicePython"  # NET START/STOP the service by the following name
    _svc_display_name_ = "ServicePython Service"  # name in the Service  Control Manager (SCM)
    _svc_description_ = "This service writes stuff to a file"  #  description in the SCM

    def __init__(self, args):
        win32serviceutil.ServiceFramework.__init__(self,args)
        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)

    def SvcDoRun(self):
        import servicemanager   
        self.start()  
        win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE)  

    def SvcStop(self):
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) #tell the SCM 
        win32event.SetEvent(self.hWaitStop)         # fire the stop event
        self.stop()

    def start():
        pass  

    def stop():
        pass 

class MyService(PySvc): 
    def start(self):
        os.system("start cmd.exe /k \"cd /d C:\\ & dir\"") ####this does not show, runs at background only

if __name__ == '__main__':
    sys.argv.append("start")
    win32serviceutil.HandleCommandLine(MyService)

1 Ответ

0 голосов
/ 12 апреля 2019

Некоторые, как я решил проблему.Вот мои шаги:

  1. установить службу Windows, используя опцию --interactive.
    Если имя файла вышеприведенного скрипта python - service.py, то установите его через "python"service.py - интерактивная установка "в cmd.Запустите сервис вручную.

  2. Использование удаленного рабочего стола для подключения к сеансу 0.
    Оконные службы отображаются только для пользователей сеанса 0 по по умолчанию .Я перехожу по ссылке , чтобы подключиться к сеансу 0, и оболочка приглашения теперь видна.

Большое спасибо.

...