当我以Windows服务运行脚本时,Python代码无法按预期工作

3 投票
1 回答
833 浏览
提问于 2025-04-15 14:29

下面是获取Windows Vista上桌面路径的代码。

import pythoncom
import win32com.client

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

我在Python解释器中运行这段代码时一切正常,但当我从作为Windows服务运行的Python脚本中执行相同的代码时,它却不工作。这个函数返回的桌面路径是空字符串。

有没有人知道这里出了什么问题?当Python脚本作为Windows服务运行时,有没有其他方法可以获取桌面路径?

1 个回答

3

很可能,你的服务是以一个没有用户桌面文件夹的账户在运行的。另外要注意,服务默认是无法访问图形用户界面的。如果你的应用有图形界面,你需要特别设置你的服务,允许它与桌面进行交互(这里指的是用户的会话,而不是文件夹)。

撰写回答