Add/Remove ISAPI Filter to/from IIS Automatically Using Delphi
来源:互联网 发布:组策略下发软件 编辑:程序博客网 时间:2024/05/22 13:29
function SplitString(Source,ch: String): TStringList;
var
temp:String;
i:Integer;
begin
Result:=TStringList.Create;
if Source = '' then Exit;
temp := Source;
i := pos(ch,Source);
while i <> 0 do
begin
Result.add(copy(temp,0,i-1));
Delete(temp,1,i);
i := pos(ch,temp);
end;
Result.add(temp);
end;
//Add a global IIS isapi filter
function AddISAPIFilterToIISGlobal(FilterName, FilterPath, FilterDesc:String):Boolean;
var
IISNameSpace,
IISWebService,
IISFilters,
IISFilter:Variant;
begin
Result := True;
try
try
IISNameSpace := CreateOleObject('IISNamespace');
IISWebService := IISNameSpace.GetObject('IIsWebService', 'localhost/w3svc');
IISFilters := IISWebService.GetObject('IISFilters', 'Filters');
IISFilters.FilterLoadOrder := IISFilters.FilterLoadOrder + ',' + FilterName;
IISFilters.SetInfo;
IISFilter := IISFilters.Create('IIsFilter',FilterName);
IISFilter.FilterPath := FilterPath;
IISFilter.FilterDescription := FilterDesc;
IISFilter.SetInfo;
except
Result := False;
end;
finally
IISFilter := Unassigned;
IISFilters := Unassigned;
IISWebService := Unassigned;
IISNameSpace := Unassigned;
end;
end;
//Add a isapi IIS filter to default web site
function AddISAPIFilterToIISDefaultSite(FilterName, FilterPath, FilterDesc:String):Boolean;
var
IISNameSpace,
IISWebService,
IISWebServer,
IISFilters,
IISFilter:Variant;
begin
Result := True;
try
try
IISNameSpace := CreateOleObject('IISNamespace');
IISWebService := IISNameSpace.GetObject('IISWebService', 'localhost/w3svc');
IISWebServer := IISWebService.GetObject('IISWebServer', '1');
IISFilters := IISWebServer.GetObject('IISFilters', 'Filters');
IISFilters.FilterLoadOrder := IISFilters.FilterLoadOrder + ',' + FilterName;
IISFilters.SetInfo;
IISFilter := IISFilters.Create('IISFilter',FilterName);
IISFilter.FilterPath := FilterPath;
IISFilter.FilterDescription := FilterDesc;
IISFilter.SetInfo;
except
Result := False;
end;
finally
IISFilter := Unassigned;
IISFilters := Unassigned;
IISWebService := Unassigned;
IISNameSpace := Unassigned;
end;
end;
function RemoveISAPIFilterFromIISGlobal(FilterName:String):Boolean;
var
IISNameSpace,
IISWebService,
IISFilters,
LoadOrder:Variant;
List:TStringList;
I:Integer;
begin
Result := True;
List := nil;
LoadOrder := '';
try
try
IISNameSpace := CreateOleObject('IISNamespace');
IISWebService := IISNameSpace.GetObject('IIsWebService', 'localhost/w3svc');
IISFilters := IISWebService.GetObject('IISFilters', 'Filters');
List := SplitString(IISFilters.FilterLoadOrder, ',');
for I := 0 to List.Count - 1 do
begin
if FilterName <> List[I] then
begin
if I <> List.Count - 1 then
LoadOrder := LoadOrder + List[I] + ','
else
LoadOrder := LoadOrder + List[I];
end;
end;
if IISFilters.FilterLoadOrder <> LoadOrder then
begin
IISFilters.FilterLoadOrder := LoadOrder;
IISFilters.SetInfo;
end;
IISFilters.Delete('IISFilters', FilterName);
except
Result := False;
end;
finally
LoadOrder := Unassigned;
IISFilters := Unassigned;
IISWebService := Unassigned;
IISNameSpace := Unassigned;
if List <> nil then
List.Free;
end;
end;
function RemoveISAPIFilterFromIISDefaultSite(FilterName:String):Boolean;
var
IISNameSpace,
IISWebService,
IISWebServer,
IISFilters,
LoadOrder:Variant;
List:TStringList;
I:Integer;
begin
Result := True;
List := nil;
LoadOrder := '';
try
try
IISNameSpace := CreateOleObject('IISNamespace');
IISWebService := IISNameSpace.GetObject('IIsWebService', 'localhost/w3svc');
IISWebServer := IISWebService.GetObject('IISWebServer', '1');
IISFilters := IISWebServer.GetObject('IISFilters', 'Filters');
List := SplitString(IISFilters.FilterLoadOrder, ',');
for I := 0 to List.Count - 1 do
begin
if FilterName <> List[I] then
begin
if I <> List.Count - 1 then
LoadOrder := LoadOrder + List[I] + ','
else
LoadOrder := LoadOrder + List[I];
end;
end;
if IISFilters.FilterLoadOrder <> LoadOrder then
begin
IISFilters.FilterLoadOrder := LoadOrder;
IISFilters.SetInfo;
end;
IISFilters.Delete('IISFilters', FilterName);
except
Result := False;
end;
finally
LoadOrder := Unassigned;
IISFilters := Unassigned;
IISWebServer := Unassigned;
IISWebService := Unassigned;
IISNameSpace := Unassigned;
if List <> nil then
List.Free;
end;
end;
- Add/Remove ISAPI Filter to/from IIS Automatically Using Delphi
- Add/Remove ISAPI Filter to/from IIS Automatically Using Delphi
- IIS ISAPI Filter 开发
- IIS ISAPI Filter 开发
- How to add/remove applications from ‘Open With’ window
- LeetCode 83. Remove Duplicates from Sorted List Add to List
- Using Ambari Blueprint to Provision HDP automatically
- Install software from Fedora installation DVD using Add/Remove software package manager.
- CAN I WRITE AN ISAPI FILTER USING MANAGED CODE?
- 用Delphi开发ISAPI过滤器以增强IIS功能
- Delphi, ISAPI, NT and IIS 4.0 and 5.0
- How to Add An Automatically Executable Program in YOCTO?
- 快慢指针- Add to List 19. Remove Nth Node From End of List
- Magento how to remove the catelog filter from the layer navigation?
- How to Login Automatically into Website Using Excel VBA
- Using OLE to Add Data
- remove an add-in from MS Word
- A Bug in Custom ISAPI Filter Related to Keep-Alive
- ASP.NET生成静态页面
- psservice.exe
- 解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证
- 在VC6.0下创建自己的C函数库
- function should return a value; 'void' return type assumed
- Add/Remove ISAPI Filter to/from IIS Automatically Using Delphi
- August 18th Tuesday
- 四种新方法 - 硬盘安装Windows 7 RTM
- Flex中窗体参数传递方法
- 国外,国内的Java网站 - 转自http://www.linuxsir.org/bbs/showthread.php?t=197291
- Clutter学习(十三):可多行可编辑的ClutterText
- 郁闷的出纳员(用 Size Balanced tree);
- javascript的call 和apply的用法
- Linux系统域名服务(DNS)配置方法----RHEL4