我们知道,在VB里可以用SHELL函数实现对外部程序的调用,那么,在dhlphi里怎样实现呢?请教了!

解决方案 »

  1.   

    procedure RegisterActiveX(const FileName: string);
    type
      TDllRegisterServer=function:HResult; stdcall;
    var
      Ocx:TDllRegisterServer;
      H:THandle;
    begin
      H:=LoadLibrary(PChar(FileName));
      try
        @Ocx:=GetProcAddress(H,'DllRegisterServer');
        Ocx;
      finally
        FreeLibrary(H);
      end;
    end;
      

  2.   

    MyUtil_RegisterDll(pchar(boot_on+'fgo.dll'));//**************** registry dll
      function   MyUtil_RegisterDll(Filename:   pchar)   :   integer;   stdcall;
      var
            hOCX:   Integer;
            pReg:   procedure;
      begin
            hOCX   :=   LoadLibrary(pchar(filename));
            if   (hOCX   <>   0)   Then
                  begin
                        pReg   :=   GetProcAddress(hOCX,   'DllRegisterServer');
                        pReg;       {   Anropa   funktionen   }
                        FreeLibrary(hOCX);
                        result   :=   0;
                  end
            else
                  result   :=   -1;
      end;
    //*****************
      

  3.   

    没必要调用RegSvr32的,直接用上面的方法更好
      

  4.   


    shellexecute(handle,'open','regsvr32.exe',pchar('你需要注册的DLL文件或者OCX文件),pchar(LRegExePath),SW_HIDE);