标签:
程序中需USE COMOBJ单元
1.Q:如何得到机器上IIS中所有的WEB虚拟站点.
A:
var
InstallPath: String;
WebSite, WebServer, WebRoot: Variant;
count: Integer;
Flag: Boolean;
begin
Flag :=True;
count :=1;
while Flag do
begin
try
WebSite :=CreateOLEObject(‘IISNamespace‘);
WebSite := WebSite.GetObject(‘IIsWebService‘, ‘localhost/w3svc‘);
WebServer := WebSite.GetObject(‘IIsWebServer‘, inttostr(count));
Memo1.Lines.Add(WebServer.ServerComment);
inc(count);
except
flag :=False;
end;
end;
2. Q:通过程序控制默认WEB站点的启动,停止,暂停
A:
//停止WEB站点
procedure TForm1.btn_stopClick(Sender: TObject);
var
InstallPath: String;
WebSite, WebServer, WebRoot: Variant;
begin
try
WebSite :=CreateOLEObject(‘IISNamespace‘);
WebSite := WebSite.GetObject(‘IIsWebService‘, ‘localhost/w3svc‘);
WebServer := WebSite.GetObject(‘IIsWebServer‘, ‘1‘);
if string(webserver.ServerState) =‘2‘ then
begin
webserver.stop;
showmessage(‘停止服务成功‘);
end;
except
showmessage(‘停止服务失败‘);
end;
end;
//启动WEB站点
procedure TForm1.btn_startClick(Sender: TObject);
var
InstallPath: String;
WebSite, WebServer, WebRoot: Variant;
begin
try
WebSite :=CreateOLEObject(‘IISNamespace‘);
WebSite := WebSite.GetObject(‘IIsWebService‘, ‘localhost/w3svc‘);
WebServer := WebSite.GetObject(‘IIsWebServer‘, ‘1‘);
if string(webserver.ServerState) =‘4‘ then
begin
webserver.start;
showmessage(‘启动服务成功‘);
end;
except
showmessage(‘启动服务失败‘);
end;
end;
//暂停WEB站点
procedure TForm1.btn_pauseClick(Sender: TObject);
var
InstallPath: String;
WebSite, WebServer, WebRoot: Variant;
begin
try
WebSite :=CreateOLEObject(‘IISNamespace‘);
WebSite := WebSite.GetObject(‘IIsWebService‘, ‘localhost/w3svc‘);
WebServer := WebSite.GetObject(‘IIsWebServer‘, ‘1‘);
if string(webserver.ServerState) =‘2‘ then
begin
webserver.pause;
showmessage(‘暂停服务成功‘);
end;
except
showmessage(‘暂停服务失败‘);
end;
end;
3.虚拟目录的创建
a:以程序在网上或超级猛料中也有,但都没有指定应用程序名,以下程序已完成此功能
var
InstallPath: String;
WebSite, WebServer, WebRoot, VDir: Variant;
begin
WebSite := CreateOleObject(‘IISNamespace‘);
WebSite := WebSite.GetObject(‘IIsWebService‘, ‘localhost/w3svc‘);
WebServer := WebSite.GetObject(‘IIsWebServer‘, ‘1‘);
webserver.setinfo;
WebRoot := WebServer.GetObject(‘IIsWebVirtualDir‘, ‘Root‘);
VDir := WebRoot.Create(‘IIsWebVirtualDir‘, ‘VariantTest‘);
VDir.AccessRead := True;
VDir.Path := ‘C:\test‘;
VDir.AppCreate(True); //如果没有这句的话,虚拟目录就要人为的手工创建应用程序名
VDir.SetInfo;
Q:如何得到WEB站点的IP和端口
A:此次以WEB站点为例
var
InstallPath: String;
WebSite, WebServer, WebRoot: Variant;
ar: array of variant;
begin
try
WebSite :=CreateOLEObject(‘IISNamespace‘);
WebSite := WebSite.GetObject(‘IIsWebService‘, ‘localhost/w3svc‘);
WebServer := WebSite.GetObject(‘IIsWebServer‘, ‘3‘);
ar := webserver.ServerBindings; //把IIS虚拟站点绑定的IP、端口、域名的值放入数组
showmessage(ar[0]);
except
end;
更多的请大家查看MSDN中有关ADSI的页面
标签:
原文地址:http://www.cnblogs.com/shouce/p/5429275.html