Delphi中用Adsi创建IIS虚拟目录的方法

2008-02-23 07:13:39来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

先引入类型库(Project|Import Type Library)adsiis.dll、iisext.dll和activeds.tlb新建一个单元,声明。

unit ActiveDs;

interface

 function ADsGetObject(const PathName: WideString; const GUID: 

TGUID; out I: IUnknown): HRESULT; stdcall;

implementation

 function ADsGetObject;   external 'activeds.dll' name 'ADsGetObject';

end.

方法一(参照C )

var

 I: IADsContainer;

 ADs: IADs;

begin

 if ADsGetObject('IIS://localhost/w3sVC', IID_IADsContainer, IUnknown(I)) = S_Ok then

 begin

  ADs := IADs(I.GetObject('IIsWebServer', '1'));

  ShowMessage(ADs.ADsPath);

  if ADs.QueryInterface(IID_IADsContainer, I) = S_OK then

  begin

   ADs := IADs(I.GetObject('IIsWebVirtualDir', 'Root'));

   ShowMessage(ADs.ADsPath);

   if ADs.QueryInterface(IID_IADsContainer, I) = S_OK then

   begin

    ADs := IADs(I.Create('IIsWebVirtualDir', 'DelphiTest'));

    ADs.Put('AccessRead', 'True');

    ADs.Put('Path', 'c:\Temp');

    ADs.SetInfo;

   end;

  end;

 end;

end;

方法二(使用接口)

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;

方法三(使用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;

(T113)

上一篇: 快速上手Delphi三十六计之输入处理篇
下一篇: 金手指Delphi中MsComm控件的安装使用

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delphi利用Windows GDI实现文字倾斜

下一篇:快速上手Delphi三十六计之输入处理篇