在 c# windows 服务中访问当前登录的用户下载文件夹

Access Current logged in Users download folder in c# windows service

我有 windows 服务,使用 service.msc 使用 c# 部署,

我想访问当前登录用户的下载文件夹

例如:如果当前登录的用户名是admin,那么我想访问

C:\Users\admin\Downloads

如果当前登录的用户名是tomas,那么我想访问

C:\Users\tomas\Downloads.

您可以使用 SHGetKnownFolderPath(FOLDERID_Downloads),为所需的用户帐户传递令牌。诀窍在于知道您想要哪个用户。可能有多个用户同时登录。可能根本没有用户登录。如果您的服务在 SYSTEM 帐户下 运行,它可以通过 WTSEnumerateSessions() 枚举活动用户会话并通过 WTSQueryUserToken().

获取他们的用户令牌