为特定文件类型注册Shell扩展

时间:2011-12-18 16:02:19

标签: c++ windows visual-c++ shell-extensions

我可以成功为HKCR *键下的所有文件类型注册我的shell扩展dll,但是当我尝试将其注册为特定文件类型时,它会失败。

你知道问题是什么吗?

注册.rgs文件是:

HKCR
{
    NoRemove CLSID
    {
        ForceRemove {BED8B9FD-1972-4E1E-B106-B576C5620C82} = s 'MyAppShellExt Class'
        {           
            InprocServer32 = s '%MODULE%'
            {
                val ThreadingModel = s 'Apartment'
            }           
        }
    }

    NoRemove .jpg
    {
        NoRemove ShellEx
        {
            NoRemove ContextMenuHandlers
            {
                ForceRemove MyApp = s '{BED8B9FD-1972-4E1E-B106-B576C5620C82}'
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

你真的不应该直接向HKEY_CLASSES_ROOT写任何东西。请改为写HKEY_LOCAL_MACHINE\Software\Classes和/或HKEY_CURRENT_USER\Software类。微软在HKEY_CLASSES_ROOT documentaton中说了很多。