参考一下DELPHI对COM操作方面的资料

解决方案 »

  1.   

    我知道用COM方式进行对ADSI的读取,但是我找不到adsi的com接口
      

  2.   

    Project|Import Type Library
    adsiis.dll
    它的接口太多了,我也不知道具体怎么写。
      

  3.   

    1、使用接口
    procedure TForm3.BitBtn4Click(Sender: TObject);
    var
      Disp: IDispatch;
    begin
      Disp := IISNamespace1.GetObject('IIsWebService', 'localhost/w3svc');
      Disp := (Disp as IADsContainer).GetObject('IIsWebServer', '1');
      Disp := (Disp as IADsContainer).GetObject('IIsWebVirtualDir', 'Root');
      Disp := (Disp as IADsContainer).Create('IIsWebVirtualDir', 'DelphiADSITest');
      (Disp as IADs).Put('AccessRead', 'True');
      (Disp as IADs).Put('Path', 'c:\ADSITest');
      (Disp as IADs).SetInfo;
    end;2、使用Variant(就是类似VB和ASP的方法)
    procedure TForm2.BitBtn1Click(Sender: TObject);
    var
      WebSite, WebServer, WebRoot, VDir: Variant;
    begin
      WebSite := CreateOleObject('IISNamespace');
      WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc');
      WebServer := WebSite.GetObject('IIsWebServer', '1');
      WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');
      VDir := WebRoot.Create('IIsWebVirtualDir', 'VariantTest');
      VDir.AccessRead := True;
      VDir.Path := 'C:\Test';
      VDir.SetInfo;
    end;详细内容请看
    http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=468148