예전부터 제 나름대로 정리하고 싶었는데 시간도 없고 실력도 부족하고 남들 시간낭비할까봐 아직 글을 못썼네요 . 그런데 다른 분들의 글을 볼 때마다 마음이 가려워서 제가 www.delphibbs.com에 올렸던 글을 찾아서 여러분께 돌려드리고자 합니다.
{************************************************ * ********************* }
{ }
{ }
{ 자오 젠화 }
{}
{ 저작권 zhao zhenhua 이메일:[email protected] }
{ }
{************************************************ * ********************* }
단위 MainUnt;
인터페이스
용도
Windows, 메시지, SysUtils, 변형, 클래스, 그래픽, 컨트롤, 양식,
대화 상자, StdCtrls, FileCtrl, 버튼,Actives_TLB;
유형
TIISConfigFrm = 클래스(TForm)
edtAlias: TEdit;
라벨1: TLabel;
dlbIIS: TDirectoryListBox;
dcbIIS: TDriveComboBox;
라벨2: TLabel;
edtPath: TEdit;
그룹박스1: T그룹박스;
cbRead: TCheckBox;
cb스크립트: TCheckBox;
cbExecute: TCheckBox;
cbWrite: TCheckBox;
cbBrowse: TCheckBox;
bbtOK: TBitBtn;
lblPath:TLabel;
PROcedure dlbIISChange(보내는 사람: TObject);
절차 bbtOKClick(보내는 사람: TObject);
절차 FormCreate(보내는 사람: TObject);
사적인
{비공개 선언}
공공의
{공개 선언}
끝;
function ADsGetObject(const PathName: WideString; const GUID:TGUID; out I: IUnknown): HRESULT;
var
IISConfigFrm: TIISConfigFrm;
구현
{$R *.dfm}
함수 ADsGetObject; 외부 'ActiveDS.dll' 이름 'ADsGetObject';
절차 TIISConfigFrm.dlbIISChange(보내는 사람: TObject);
시작하다
edtPath.Text:=dlbIIS.디렉토리;
끝;
절차 TIISConfigFrm.bbtOKClick(보내는 사람: TObject);
var
I: IADsContainer;
AD: IAD;
시작하다
Length(Trim(edtAlias.Text))=0이면 시작됩니다.
application.MessageBox('별칭은 비워둘 수 없습니다!','경고');
출구;
끝;
Length(Trim(edtPath.Text))=0이면 시작됩니다.
Application.MessageBox('가상 디렉터리 위치를 선택하세요!','경고');
출구;
끝;
if ADsGetObject('IIS://localhost', IID_IADsContainer, IUnknown(I)) = S_Ok then start //IIS가 설치되었습니다.
if ADsGetObject('IIS://localhost/w3svc', IID_IADsContainer, IUnknown(I)) = S_Ok then start //웹 서버가 존재합니다.
ADs := IADs(I.GetObject('IIsWebServer', '1')) //서비스 가져오기
ADs.QueryInterface(IID_IADsContainer, I) = S_OK인 경우 //서비스 지원 시작
ADs := IADs(I.GetObject('IIsWebVirtualDir', 'Root')); //웹 서버의 루트 아래에 가상 디렉터리를 만듭니다.
ADs.QueryInterface(IID_IADsContainer, I) = S_OK인 경우 //서비스 지원 시작
노력하다
ADs := IADs(I.Create('IIsWebVirtualDir', edtAlias.Text)); //edtAlias.Text라는 별칭을 사용하여 가상 디렉터리를 생성합니다.
제외하고
Application.MessageBox('이 별칭은 이미 존재합니다. 다른 별칭을 선택하십시오!', '경고');
출구;
end; //제외를 시도해 보세요.
ADs.Put('accessRead', cbRead.Checked) //각 매개변수를 설정합니다.
ADs.Put('AccessWrite', cbWrite.Checked);
ADs.put('AccessScript',cbScript.Checked);
ADs.Put('AccessExecute',cbExecute.Checked);
ADs.put('EnableDirBrowsing',cbBrowse.Checked);
ADs.Put('경로', edtPath.text);
ADs.Put('DefaultDoc','Default.asp, Default.html, Default.htm, index.asp, Index.html, Index.htm, Home.asp, Home.Html, Home.htm');
ADs.Put('EnableDefaultDoc',True);//기본 파일 열기 허용
ADs.SetInfo; //매개변수 저장
Application.MessageBox('설정이 저장되었습니다.','축하합니다');
끝;
끝;
끝;
다른 끝
Application.MessageBox('IIS가 컴퓨터에 설치되어 있지 않거나 IIS에 액세스할 수 있는 권한이 없습니다.', '경고');
끝;
절차 TIISConfigFrm.FormCreate(Sender: TObject);
시작하다
edtPath.Text:=dlbIIS.디렉토리;
끝;
끝.