2010-08-16 55 views
1

如何查找其他用戶的MyMusic文件夾?如何從其他用戶找到MyMusic文件夾?

+0

哪個操作系統?用戶文件夾位於Windows 7和XP的不同位置。 – ChrisF 2010-08-16 13:47:40

+0

@ChrisF根據對我的問題的回答來判斷,看起來他正在尋找一個版本無關的方法來做到這一點,它與windows api有點吸引。 – James 2010-08-16 14:07:46

+0

@ChrisF *迴應我的回答,不是我的問題。 – James 2010-08-16 14:15:44

回答

-1

如果你正在運行的程序的帳戶具有管理privlieges,你不能只需導航到c:\Users\<UserName>\Music(這是Windows7上的路徑)。
如果您正在尋找另一臺機器上的用戶文件夾,那就更困難了。

編輯: 看來,有一種方法可以做到這一點,from 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 
+0

可能是我不使用Windows 7或用戶已更改MusicFolder路徑 – pedram 2010-08-16 13:47:53

+0

然後,這是一個棘手的問題 – James 2010-08-16 14:01:44

+0

@pedram,試試這個新功能 – James 2010-08-16 14:51:47

5

您可以使用Environment.SpecialFolder枚舉與Environment.GetFolderPath一起以訪問「特殊」用戶文件夾,就像這樣:

Environment.GetFolderPath(Environment.SpecialFolder.MyMusic); 
+0

請完整閱讀我的問題:'其他用戶' – pedram 2010-08-16 13:41:32

+0

對不起,我不確定是否「其他用戶」提到到「除我以外的用戶」(即運行應用程序的用戶,或「用戶訪問應用程序以外的用戶」) – 2010-08-16 13:56:32

1

的記錄方式做,這是使用SHGetFolderLocation和hToken參數,問題是你所需要的用戶名和密碼來調用LogonUser(你湊LD也呼籲WTSQueryUserToken如果你正在運行作爲一種服務,但限制你當前活動的會話)

現在你只剩下使用undocumented stuff

  1. 找到配置文件:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList(%WINDIR%\在Win9x型材)
  2. AdjustTokenPrivileges爲SE_RESTORE_NAME
  3. RegLoadKey NTUSER.DAT上9X(USER.DAT)
  4. 查詢HKEY_USERS\{SIDYOUGOTFROMPROFILELIST}\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

注意:您必須是管理員才能執行此操作,並且僅適用於本地帳戶。

相關問題