新文章 网摘 文章 随笔 日记

在delphi程序中如何自动注册COM组件

我用.NET写了一个组件DTD.DLL,然后在DELPHI中调用这个组件,不过在调用之前,必须手动使用命令regasm DTD.dLL注册这个组件后,在delphi中才可以调用。
  请问大家,有没有什么方法不用手动注册,而是让delphi程序在运行时检测到系统如果没有注册这个DLL组件的话,就自动注册?

 

procedure RegisterDllConifg();
var
  ARegistry: TRegistry;
begin
  ARegistry := TRegistry.Create;
  with ARegistry do
  begin
    try
      RootKey := HKEY_CLASSES_ROOT; //指定根键为HKEY-LOCAL-ROOT
      if OpenKey('Licenses', False) then
      begin
        if (not OpenKey('4250E830-6AC2-11cf-8ADB-00AA00C00905', False)) then
        begin
          WinExec('regsvr <DTD.DLL>', SW_NORMAL);
          if OpenKey('4250E830-6AC2-11cf-8ADB-00AA00C00905', True) then
            WriteString('', 'kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun');
        end;
      end;
    finally
      CloseKey;
      Destroy;
    end;
  end;
end;

 

 

https://bbs.csdn.net/topics/190019294

posted @ 2021-03-10 11:53  岭南春  阅读(323)  评论(0)    收藏  举报