エクスプローラーでファイルをダブルクリックすると、ファイルがアプリケーションの最近のリストに正しく追加され、スタート メニューにピン留めしたアプリケーションのポップアップ メニューから再度開くことができます。
アプリケーションに特別なファイル マネージャーがあるので、SHAddToRecentDocs を使用して、アプリケーションで開いたプロジェクトを最近のファイルに追加しています。しかし、それは起こらないだけで、何が問題なのかわかりません。
レジストリで取得したものは次のとおりです。
HKEY_CLASSES_ROOT\.abc\Content Type = application/MyApp
HKEY_CLASSES_ROOT\.abc\(Standard) = MyAppProjectFile
HKEY_CLASSES_ROOT\MyAppProjectFile\shell\open\command\(Standard) = "C:\MyApp\MyApp.exe" %1
HKEY_CLASSES_ROOT\Applications\MyApp.exe\shell\open\command\(Standard) = "C:\MyApp\MyApp.exe" %1
HKCR\Applications\MyApp.exe の下には他のキーはありません。
先ほど言ったように、Explorer でアプリケーションをダブルクリックしてアプリケーションを開くことができます。アプリケーションは最近使用したドキュメントに追加され、すべて問題なく表示されます。ポップアップから問題なく開くことができます。
正しいパスを取得する私の SHAddToRecentDocs 呼び出しは、まったく何もしていないようです。最近使用したドキュメント フォルダーにリンクが表示されません。
SHAddToRecentDocs を実行するために使用する C# コードは次のとおりです。
[DllImport("Shell32.dll", CharSet = CharSet.Unicode)]
static extern void SHAddToRecentDocs(ShellAddToRecentDocsFlags flags, string file);
[Flags]
public enum ShellAddToRecentDocsFlags
{
Pidl = 0x001,
Path = 0x002,
}
/// <summary>
/// Adds the file to recent files list in windows.
/// </summary>
/// <param name="fullPath"> Name of the file. </param>
public static void AddFileToRecentFilesList(string fullPath)
{
SHAddToRecentDocs(ShellAddToRecentDocsFlags.Path, fullPath);
}