Explorer에서 파일을 두 번 클릭하면 파일이 내 응용 프로그램의 최신 목록에 올바르게 추가되고 해당 프로그램에 고정되어있는 응용 프로그램의 팝업 메뉴에서 파일을 다시 열 수 있습니다. 메뉴를 시작하다.SHAddToRecentDocs가 최근 문서에 파일을 추가하지 않습니다.
응용 프로그램에 특수 파일 관리자가있어서 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
는 \ MyApp.exe의 HKCR \ 응용 프로그램에서 다른 키가 없습니다.
내가 말했듯이, 나는 익스플로러에서 두 번 클릭하여 애플리케이션을 열 수 있으며, 최근 문서에 추가되고 모든 것이 잘 보입니다. 나는 벌금 팝업에서 그들을 열 수 있습니다.
정확한 경로를 얻는 My SHAddToRecentDocs 호출이 전혀 수행하지 않는 것처럼 보입니다. 최근 문서 폴더에는 링크가 표시되지 않습니다.
[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);
}