word插件应该怎么在注册表中注册,
HKEY_CURRENT_USER\Software\Microsoft\Office\<AppName>\Addins\<AddInProgID>
这里面的AddInProgID是什么参数,现在我的插件文件是project2.dll,里面的类是AddIn
我应该怎么写这个键值

解决方案 »

  1.   

    我现在的键项设置为
    HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins\Project2.AddIn
    键值中有LoadBehavior = 3
    但是这个插件并没有启动起来
      

  2.   

    我已经regsvr32 project2.dll了,但是不好用
      

  3.   

    大家看看这里HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins\Project2.AddIn
    是不是有错?是不是应该是project2.addin
      

  4.   

    1.继承类工厂,覆盖UpdateRegistry方法
      TDemoWordAddinFactory = class(TAutoObjectFactory)
      public
        procedure UpdateRegistry(Register: Boolean); override;
      end;procedure TDemoWordAddinFactory.UpdateRegistry(Register: Boolean);
    var
      Reg : TRegistry;
      Section : string;
    begin
      inherited UpdateRegistry(Register);
      Section:='Software\Microsoft\Office\Word\Addins\DemoOfficeAddin.DemoWordAddin';
      Reg :=  TRegistry.Create;
      try
        Reg.RootKey :=  HKEY_LOCAL_MACHINE;
        if Register then
        begin
          Reg.OpenKey(Section,True);
          Reg.WriteString('FriendlyName', 'Demo Word Addin');
          Reg.WriteString('Description', 'Demo Word Addin');
          Reg.WriteInteger('LoadBehavior', 3);
          Reg.WriteInteger('CommandLineSafe', 1);
        end
        else begin
          Reg.DeleteKey(Section);
        end;
      finally
        Reg.Free;
      end;
    end;2.不用原来的类工厂注册,调用新的类工产来注册
    initialization
      TDemoWordAddinFactory.Create(ComServer, TDemoWordAddin, Class_DemoWordAddin,
        ciMultiInstance, tmApartment);OFFICE可能会禁用出错的ADDIN,可以在帮助->关于->被禁用项目里查看你的ADDIN是否被禁用了.
    调试程序时,有可能注册后OFFICE并不能正确加载ADDIN,可以注销当前用户或重启再试