■88821 / inTopicNo.6) |
Re[3]: エクスプローラ クイックアクセス ピン留め C# |
□投稿者/ 魔界の仮面弁士 (1869回)-(2018/10/03(Wed) 00:33:46)
|
2018/10/03(Wed) 00:47:41 編集(投稿者)
■No88817 (Ante さん) に返信 > var csidlList = new[] { 13, 14, 39, /* 53, 54, 55, */ }; > で定義しているものが、下記に一致しているように思えますが
一つ上の回答と被りますが、これらの値については『CSIDL 値』で検索してみてください。
VS2017 と共に Windows SDK もインストールしている場合には、 C:\Program Files (x86)\Windows Kits\10\Include\バージョン の下位フォルダにある、ShlObj_core.h もしくは ShlObj.h の どちらかを見ることで、CSIDL の定数値を確認できるかと思います。
> 定数値の一覧等が掲載されたサイトがあれば教示いただけたら嬉しいです。。。 幾つかの CSIDL 値は、Shell32 の ShellSpecialFolderConstants 列挙型として定義されています。
参照設定に Microsoft Shell Controls And Automation を加えていれば、 デスクトップ フォルダーなら Shell32.ShellSpecialFolderConstants.ssfDESKTOP // 0 デスクトップ ディレクトリは Shell32.ShellSpecialFolderConstants.ssfDESKTOPDIRECTORY // 16 パブリック デスクトップなら Shell32.ShellSpecialFolderConstants.ssfCOMMONDESKTOPDIR // 25 という具合に。 http://msdn.microsoft.com/en-us/library/bb774096.aspx
しかしこの ShellSpecialFolderConstants にはバグがありまして、 ssfPROGRAMFILESx86 という列挙値の数値が 本来は 42 で無ければならないのにも関わらず、 誤って 48 (Windows 管理ツール を意味する)と誤定義されていたりします。
ちなみに Windows SDK 上での定義はこんな感じ。
#define CSIDL_PROGRAM_FILESX86 0x002a #define CSIDL_ADMINTOOLS 0x0030
> 以下の3つについて、 > ・ダウンロード > ・デスクトップ > ・ドキュメント デスクトップ や ドキュメント など、Windows XP 以前からあるものは CSIDL が使えますが、ダウンロードのように Vista 以降で追加されたものは KNOWNFOLDERID として定義されています。 https://docs.microsoft.com/ja-jp/windows/desktop/shell/knownfolderid
var targets = new object[] { // 17, // PC // "shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", // PC // "shell:thisdevicefolder", // このデバイス
// 0, // デスクトップ(仮想フォルダー) // "shell:::{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}" // デスクトップ(仮想フォルダー) "shell:desktop", // デスクトップ(ディレクトリ) // 16, // デスクトップ(ディレクトリ) //// 25, // パブリック デスクトップ(ディレクトリ) //// "shell:common desktop", // パブリック デスクトップ(ディレクトリ)
"shell:documentslibrary", // ドキュメント(ライブラリ) // 5, // ドキュメント // "shell:::{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}", // ドキュメント // "shell:::{D3162B92-9365-467A-956B-92703ACA08AF}", // ドキュメント "shell:personal", // ドキュメント // "shell:local documents", // ローカル ドキュメント // "shell:common documents", // パブリック ドキュメント
// "shell:::{374DE290-123F-4565-9164-39C4925E467B}", // ダウンロード // "shell:::{088E3905-0323-4B02-9826-5D99428E115F}", // ダウンロード "shell:downloads", // ダウンロード // "shell:local downloads", // ローカル ダウンロード "shell:commondownloads", // パブリック ダウンロード
// "shell:::{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}", // 3D オブジェクト "shell:3d objects", // 3D オブジェクト
// "shell:libraries", // ライブラリ // "shell:userslibrariesfolder", // ライブラリ // "shell:quick launch", // Quick Launch //// "shell:user pinned", // ジャンプリスト 固定メニュー // "shell:public", // パブリック
"shell:musiclibrary", // ミュージック(ライブラリ) // 13, // ミュージック // "shell:::{1CF1260C-4DD0-4EBB-811F-33C572699FDE}", // ミュージック // "shell:::{3DFDF296-DBEC-4FB4-81D1-6A3438BCF4DE}", // ミュージック "shell:my music", // ミュージック // "shell:local music", // ローカル ミュージック // 53, // パブリック ミュージック "shell:commonmusic", // パブリック ミュージック // "shell:samplemusic", // サンプル ミュージック
"shell:videoslibrary", // ビデオ(ライブラリ) // 14, // ビデオ // "shell:::{A0953C92-50DC-43BF-BE83-3742FED03C9C}", // ビデオ // "shell:::{F86FA3AB-70D2-4FC7-9C99-FCBF05467F3A}", // ビデオ "shell:my video", // ビデオ // 55, // パブリック ビデオ "shell:commonvideo", // パブリック ビデオ // "shell:samplevideos", // サンプル ビデオ
"shell:pictureslibrary", // ピクチャ(ライブラリ) // 39, // ピクチャ // "shell:::{3ADD1653-EB32-4CB0-BBD7-DFA0ABB5ACCA}", // ピクチャ // "shell:::{24AD3AD4-A569-4530-98E1-AB02F9417AA8}", // ピクチャ "shell:my pictures", // ピクチャ // "shell:local pictures", // ローカル ピクチャ // 54, // パブリック ピクチャ "shell:commonpictures", // パブリック ピクチャ // "shell:samplepictures", // パブリック\サンプル ピクチャ
"shell:accountpictures", // アカウントの画像 //// "shell:publicaccountpictures", // パブリック アカウントの画像
"shell:camerarolllibrary", // カメラロール(ライブラリ) // "shell:::{3ADD1653-EB32-4CB0-BBD7-DFA0ABB5ACCA}\\camera roll", // ピクチャ\カメラ ロール // "shell:::{24AD3AD4-A569-4530-98E1-AB02F9417AA8}\\camera roll", // ピクチャ\カメラ ロール "shell:camera roll", // ピクチャ\カメラ ロール
"shell:savedpictureslibrary", // 保存済みの写真(ライブラリ) "shell:savedpictures", // ピクチャ\保存済みの写真
// "shell:::{018D5C66-4533-4307-9B53-224DE2ED1FE6}", // OneDrive "shell:onedrive", // OneDrive "shell:onedrivepictures", // OneDrive の画像 "shell:onedrivedocuments", // OneDrive のドキュメント // "shell:onedrivecameraroll", // OneDrive の画像\カメラ ロール // "shell:onedrivemusic", // OneDrive のミュージック };
dynamic shell = Activator.CreateInstance(Type.GetTypeFromCLSID( new Guid("13709620-C279-11CE-A49E-444553540000")));
var verbName = "pintohome";
foreach (var vDir in targets) { var folder = shell.NameSpace(vDir); if (folder != null) { var item = folder.Self; item?.InvokeVerb(verbName); Release(item); } Release(folder); } Release(shell);
https://docs.microsoft.com/en-us/windows/desktop/shell/shell-namespace http://www10.plala.or.jp/palm84/archives/wsh/Windows_CreateShellCommandsShortCut.vbs.txt
|
|