繁体   English   中英

如何从其他用户中找到MyMusic文件夹?

[英]how to find MyMusic Folder from other users?

如何找到其他用户的MyMusic文件夹?

您可以将Environment.SpecialFolder枚举与Environment.GetFolderPath一起使用,以访问“特殊”用户文件夹,如下所示:

Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);

记录的执行此操作的方法是使用SHGetFolderLocation和hToken参数,问题在于您需要用户名和密码才能调用LogonUser(如果您作为服务运行,也可以调用WTSQueryUserToken ,但这将您限制为当前处于活动状态会议)

现在您剩下使用未记录的东西了

  1. 查找配置文件: HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList (在Win9x上为%windir%\\ Profiles)
  2. SE_RESTORE_NAME AdjustTokenPrivileges
  3. RegLoadKey NTUSER.DAT(9x上的USER.DAT)
  4. 查询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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM