Код Python не работает должным образом, когда я запускаю скрипт в качестве службы Windows - PullRequest
3 голосов
/ 21 сентября 2009

Вот код для получения пути к рабочему столу в Windows Vista.

import pythoncom
import win32com.client

pythoncom.CoInitialize()
shell = win32com.client.Dispatch("WScript.Shell")
desktop_path = shell.SpecialFolders("Desktop")

Код работает нормально, когда я пробовал использовать интерпретатор Python, но не работает, когда я выполняю тот же код из скрипта Python, который работает как служба Windows. Функция возвращает путь к рабочему столу в виде пустой строки.

Есть идеи, что здесь не так? Есть ли другая альтернатива для получения пути к рабочему столу, когда скрипт python запускается как служба Windows?

1 Ответ

3 голосов
/ 21 сентября 2009

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

...