Я хочу запустить 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 работает.Но приложение не на переднем плане.Есть мысли?