открытие другой программы через службу Windows с помощью python

Я пытаюсь открыть / выполнить другую программу через службу Windows, используя код python. При запуске службы Windows будет запущена другая программа, т.е. Блокнот. Код хорош без ошибок, но он не открывает программу. Код приведен ниже.

Код:

import win32serviceutil import win32service import win32event import win32com.shell.shell as w32shell import os import sys import win32process as process class SmallestPythonService(win32serviceutil.ServiceFramework): _svc_name_ = "BSmallestPythonService" _svc_display_name_ = "BSmallest possible Python Service" def __init__(self, args): win32serviceutil.ServiceFramework.__init__(self, args) # Create an event which we will use to wait on. # The "service stop" request will set this event. self.hWaitStop = win32event.CreateEvent(None, 0, 0, None) def SvcStop(self): # Before we do anything, tell the SCM we are starting the stop process. self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) # And set my event. win32event.SetEvent(self.hWaitStop) def SvcDoRun(self): win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE) import subprocess cmd = "notepad.exe" process = subprocess.Popen(cmd, stdout=subprocess.PIPE, creationflags=0x08000000) process.wait() if __name__=='__main__': win32serviceutil.HandleCommandLine(SmallestPythonService) 

В методе SvcDoRun я пробовал следующий код, но не имел успеха:

 import subprocess subprocess.Popen('calc.exe', shell=False) 

Также пытался, но не успел:

 import subprocess subprocess.call('notepad.exe', shell=False) 

также пытался, но не успел:

 import win32api win32api.WinExec('NOTEPAD.exe') # Works seamlessly 

Я что-то упустил? или я делаю это неправильно! Пожалуйста помоги

  • Windows 7: как вывести окно на передний план независимо от того, какое другое окно имеет фокус?
  • Создать единый исполняемый модуль на Python
  • Можно ли использовать Win32 COM для замены текста внутри документа Word?
  • Tkinter блокирует питон при загрузке Icon и tk.mainloop в потоке
  • Pywin32 (объекты com) на Mac
  • Каков наилучший способ взаимодействия с уже открытыми диалоговыми окнами собственной ОС, такими как (Сохранить AS) с помощью Python?
  • Как получить доступ к свойствам файла в Windows Vista с помощью Python?
  • Python win32print изменяет параметры расширенного принтера
  • One Solution collect form web for “открытие другой программы через службу Windows с помощью python”

    Службы Windows запускаются в сеансе 0, а интерактивные программы запускаются в другом сеансе. Обычно это будет сеанс 1, когда есть один зарегистрированный пользователь. Теперь ваш код будет создавать процессы в сеансе 0, так как он запускается в сеансе 0. И поэтому интерактивный рабочий стол пользователя в сеансе 1 не может взаимодействовать с этими процессами.

    Можно запустить процессы в другом сеансе из родителя процесса, но это совсем не так просто: http://blogs.msdn.com/b/winsdk/archive/2009/07/14/launching-an -interactive-процесс-из-окон-сервис-в-окна-перспектива-и-later.aspx

    Один из возможных путей для вас – запустить фоновый процесс, который запускается, когда каждый пользователь входит в систему. Служба может связываться с фоновым процессом с использованием IPC и просить фоновый процесс выполнять работу с ногами для запуска процесса на интерактивном рабочем столе.

    Python - лучший язык программирования в мире.