Delphi实现对IIS的操作
来源:互联网 发布:wifi流量监控软件 编辑:程序博客网 时间:2024/06/06 00:49
- unit RaIIS;
- interface
- uses
- SysUtils, Classes, COMOBJ, windows;
- type
- TRaIIS = class(TComponent)
- private
- fOnDeleteVirtualDirApp: TNotifyEvent;
- fOnDeleteVirtualDir: TNotifyEvent;
- fOnCreateVirtualDir: TNotifyEvent;
- protected
- public
- constructor Create(AOwner: TComponent); override;
-
- function CheckDotNetFramework: Boolean;
-
- function DeleteVirtualDirApp(strVirtualDir: string): Boolean;
-
- function DeleteVirtualDir(strVirtualDir: string): Boolean;
-
- function CheckVirtualDir(const strVirtualDir: string): Boolean;
-
- function CreateVirtualDir(const strVirtualDir, strDir, strAppName: string): Boolean;
- published
- property OnDeleteVirtualDirApp: TNotifyEvent read fOnDeleteVirtualDirApp write fOnDeleteVirtualDirApp;
- property OnDeleteVirtualDir: TNotifyEvent read fOnDeleteVirtualDir write fOnDeleteVirtualDir;
- property OnCreateVirtualDir: TNotifyEvent read fOnCreateVirtualDir write fOnCreateVirtualDir;
- end;
- procedure Register;
- implementation
- procedure Register;
- begin
- RegisterComponents('Rarnu Components', [TRaIIS]);
- end;
- function TRaIIS.CheckDotNetFramework: Boolean;
- var
- SysDir: pchar;
- begin
- GetMem(SysDir, 250);
- GetSystemDirectory(SysDir, 250);
- if not FileExists(SysDir + '/MSCOREE.DLL') then
- Result := False
- else
- Result := True;
- FreeMem(SysDir);
- end;
- function TRaIIS.CheckVirtualDir(const strVirtualDir: string): Boolean;
- var
- WebSite, WebServer, WebRoot: Variant;
- begin
- Result := True;
- try
- WebSite := CreateOleObject('IISNamespace');
- WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc');
- WebServer := WebSite.GetObject('IIsWebServer', '1');
- WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');
- WebRoot.GetObject('IIsWebVirtualDir', strVirtualDir);
- except
- Result := False;
- end;
- end;
- constructor TRaIIS.Create(AOwner: TComponent);
- begin
- inherited Create(AOwner);
- end;
- function TRaIIS.CreateVirtualDir(const strVirtualDir, strDir,
- strAppName: string): Boolean;
- var
- WebSite, WebServer, WebRoot, vdir: Variant;
- begin
- Result := True;
- try
- WebSite := CreateOleObject('IISNamespace');
- WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc');
- WebServer := WebSite.GetObject('IIsWebServer', '1');
- WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');
- vdir := WebRoot.Create('IIsWebVirtualDir', strVirtualDir);
- vdir.AccessRead := True;
- vdir.AccessScript := True;
- vdir.DefaultDoc := 'index.aspx,index.asp';
- vdir.EnableDirBrowsing := False;
- vdir.AppFriendlyName := strAppName;
- vdir.Path := strDir;
- vdir.AppCreate(True);
- vdir.SetInfo;
- except
- Result := False;
- end;
-
-
-
- if Assigned(OnCreateVirtualDir) then
- OnCreateVirtualDir(Self);
- end;
- function TRaIIS.DeleteVirtualDir(strVirtualDir: string): Boolean;
- var
- WebSite, WebServer, WebRoot: Variant;
- begin
- Result := True;
- try
- WebSite := CreateOleObject('IISNamespace');
- WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc');
- WebServer := WebSite.GetObject('IIsWebServer', '1');
- WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');
- WebRoot.Delete('IIsWebVirtualDir', strVirtualDir);
- except
- Result := False;
- end;
- if Assigned(OnDeleteVirtualDir) then
- OnDeleteVirtualDir(Self);
- end;
- function TRaIIS.DeleteVirtualDirApp(strVirtualDir: string): Boolean;
- var
- WebSite, WebServer, WebRoot, vdir: Variant;
- begin
- Result := True;
- try
- WebSite := CreateOleObject('IISNamespace');
- WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc');
- WebServer := WebSite.GetObject('IIsWebServer', '1');
- WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');
- vdir := WebRoot.GetObject('IIsWebVirtualDir', strVirtualDir);
- vdir.AppDelete;
- vdir.SetInfo;
- except
- Result := False;
- end;
- if Assigned(OnDeleteVirtualDirApp) then
- OnDeleteVirtualDirApp(Self);
- end;
- end.