他のユーザーの MyMusic フォルダを見つける方法は?
1880 次
3 に答える
5
Environment.SpecialFolder次のように、列挙型を使用しEnvironment.GetFolderPathて「特別な」ユーザー フォルダーにアクセスできます。
Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
于 2010-08-16T13:35:57.697 に答える
1
これを行う文書化された方法は、SHGetFolderLocationと hToken パラメーターを使用することです。問題は、LogonUser を呼び出すためにユーザー名とパスワードが必要なことです (サービスとして実行している場合はWTSQueryUserTokenを呼び出すこともできますが、現在アクティブなセッション)
これで、文書化されていないものを使用することになります:
- プロファイルを見つけます:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList(Win9x では %windir%\Profiles) - のAdjustTokenPrivileges
SE_RESTORE_NAME - RegLoadKey NTUSER.DAT (9x では USER.DAT)
- クエリ
HKEY_USERS\{SIDYOUGOTFROMPROFILELIST}\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
注: これを行うには管理者である必要があり、ローカル アカウントに対してのみ機能します。
于 2010-08-16T15:34:00.583 に答える
-1
プログラムを実行しているアカウントに管理者権限がある場合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
于 2010-08-16T13:45:19.187 に答える