如题,请各位帮忙阿

解决方案 »

  1.   

    在Delphi中用ADSI创建IIS的虚拟目录
     
    2004-04-05 18:05:14 
    先引入类型库(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.procedure TForm1.btn2Click(Sender: TObject);
    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'));
      if ADs.QueryInterface(IID_IADsContainer, I) = S_OK then
      begin
          ADs := IADs(I.GetObject('IIsWebVirtualDir', 'Root'));
          if ADs.QueryInterface(IID_IADsContainer, I) = S_OK then
          begin
          ADs := IADs(I.Create('IIsWebVirtualDir', 'DelphiTest'));
          ADs.Put('AccessRead', 'True');
          ADs.Put('Path', 'F:\My Documents\Indy9Demos_26Oct04\Indy9Demos\HTTPServer\web');
          ADs.SetInfo;
          end;
      end;
    end;
    end;procedure TForm1.btn3Click(Sender: TObject);
    var
      Disp: IDispatch;
    begin
      Disp := IISNamespace.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;procedure TForm1.btn4Click(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;
      

  2.   

    首先,非常感谢 constantine(飘遥的安吉儿) 
    可是我的问题依然没有解决,用命令来创建虚拟目录的应用程序名称
    上述过程是可以建立虚拟目录了,但是这个目录属性应用程序设置处我还不能建立应用程序名称,
    请constantine(飘遥的安吉儿) 
    再帮帮我,谢谢
      

  3.   

    procedure TForm1.btn1Click(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', 'AppTest');
      VDir.AccessRead := True;
      VDir.Path := 'C:\DELPHI';
      VDir.AppCreate(True); //这样就可以让iis自动创建了,不过名字留空的
      VDir.SetInfo;
    end;
      

  4.   

    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', 'VariantTest3');
      VDir.AccessRead := True;
      VDir.Path := 'C:\DELPHI';
      VDir.AppCreate(True);//这样就可以让iis自动创建了,不过名字留空的
      VDir.AppFriendlyName:='test';  //加上这个就可以自己添加名字了,名字自己修改吧
      VDir.SetInfo;
    end;
      

  5.   

    非常感谢constantine(飘遥的安吉儿)