2011-12-18 40 views
0

我可以在HKCR *键下成功注册我的外壳扩展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}' 
      } 
     } 
    } 
} 
+0

“It fails”这意味着什么。 – 2011-12-18 16:27:04

回答

0

你真的不应该写什么HKEY_CLASSES_ROOT直接。改写为HKEY_LOCAL_MACHINE\Software\Classes和/或HKEY_CURRENT_USER\Software类。微软在HKEY_CLASSES_ROOT documentaton中表示同样多。

+0

HKCR只是HKLM \ Software \ Classes的别名。关于HKCU没有争议。你能否扩展你的答案? – 2011-12-18 23:03:01

+1

阅读我链接到的文档。 'HKCR'不是'HKLM \ Software \ Classes'的简单别名。这是“HKLM \ Software \ Classes”和“HKCU \ Software \ Classes”合并在一起的单一视图。当您创建新密钥或直接向'HKCR'写入值时,将根据各种标准将其定向到HKCU或HKLM。 – 2011-12-20 00:08:56

+0

我试图在HKLM \ Software \ Classes下注册它,但菜单项没有显示出来。当我注册*而不是特定文件类型时,它会出现。有什么问题 ? – alexandertr 2012-06-01 13:58:11