Запуск приложения в качестве службы перед входом в систему с использованием Python - PullRequest
0 голосов
/ 30 июня 2019

Я хочу запустить exe перед входом в систему и пытаюсь добиться этого с помощью Python.Ниже приведен пример кода, который я пытаюсь использовать, где SMWinservice определено здесь .

# imports are there

class MyService(SMWinservice):
    _svc_name_ = 'testService1'
    _svc_display_name_ = 'Test Service 1'
    _svc_description_ = 'Test ServiceFramework 1 Description'

    def start(self):
        self.isrunning = True

    def stop(self):
        self.isrunning = False

    def main(self):
        subprocess.Popen(r'C:\Program Files\Notepad++\notepad++.exe')
        # i=0
        # while self.isrunning:
        #     with open('C:\\test1323.txt','a') as file:
        #         file.write(datetime.now().isoformat()+'\n')
        #     i=i+1
        #     time.sleep(5)


if __name__ == '__main__':
    MyService.parse_command_line()

Приведенный выше код работает нормально, когда я просто пытаюсь что-то записать в файл (после просмотра этого поста и устранения ошибок).

Но исполняемый файл не запускается, когда я пытаюсь запустить службу (вручную или после перезагрузки ПК), и я непонимаю почему.Что мне не хватает или что не так?Как мне подойти к такой проблеме.Я новичок в Windows функциональности глазами Python.Я застрял в этом в течение нескольких дней, и любой код или помощь очень ценятся.

РЕДАКТИРОВАТЬ

Я изменяю метод main на следующий.

def main()
    self.process = subprocess.Popen('C:\\Program Files\\Notepad++\\notepad++.exe')
    while self.isrunning:
        if self.process.pid not in psutil.pids():
            self.isrunning = False

        with open('C:\\logs.txt','a') as file:
            file.write(str(self.process.pid)+'\n')

        time.sleep(5)
    self.process.kill()

Когда я запускаю процесс, я вижу, как обновляется pid процесса в C:\logs.txt.Процесс также можно увидеть запущенным в диспетчере задач как notepad ++. Exe работает.Но приложение не на переднем плане.Есть мысли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...