[英]how to find MyMusic Folder from other users?
如何找到其他用户的MyMusic文件夹?
您可以将Environment.SpecialFolder
枚举与Environment.GetFolderPath
一起使用,以访问“特殊”用户文件夹,如下所示:
Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
记录的执行此操作的方法是使用SHGetFolderLocation和hToken参数,问题在于您需要用户名和密码才能调用LogonUser(如果您作为服务运行,也可以调用WTSQueryUserToken ,但这将您限制为当前处于活动状态会议)
现在您剩下使用未记录的东西了 :
HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList
(在Win9x上为%windir%\\ Profiles) SE_RESTORE_NAME
AdjustTokenPrivileges HKEY_USERS\\{SIDYOUGOTFROMPROFILELIST}\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders
注意:您需要成为管理员才能执行此操作,并且仅适用于本地帐户。
如果您在其上运行程序的帐户具有管理特权,那么您是否只能浏览到c:\\Users\\<UserName>\\Music
(这是Windows7上的路径)。
如果要在另一台计算机上查找用户文件夹,则更加困难。
编辑:似乎有一种方法可以从MSDN执行 :
HRESULT SHGetKnownFolderPath(
__in REFKNOWNFOLDERID rfid,
__in DWORD dwFlags,
__in HANDLE hToken,
__out PWSTR *ppszPath
);
对于“我的音乐”,rfid是您要查找的文件夹的KNOWNFOLDERID:
GUID{2112AB0A-C86A-4FFE-A368-0DE96E47012E}
Display NameMusicFolder
Type PERUSER
Default Path: %APPDATA%\Microsoft\Windows\Libraries\Music.library-msCSIDL
Equivalent None, new in Windows 7
Legacy Display Name Not applicable
Legacy Default Path Not applicable
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.