อยากจัดการเรื่องของตัวเองมานานแล้วแต่ไม่มีเวลา ฝีมือยังน้อย กลัวเสียเวลาคนอื่น เลยยังไม่ได้เขียนอะไรเลย . แต่ทุกครั้งที่เห็นบทความของคนอื่นรู้สึกคันจึงหากระทู้ที่ลงไว้บน www.delphibbs.com มาแจกให้กับทุกคน
{************************************************ * ********************* }
-
-
{ จ้าว เจิ้นหัว }
-
{ ลิขสิทธิ์ zhao zhenhua อีเมล:[email protected] }
-
{************************************************ * ********************* }
หน่วย MainUnt;
อินเตอร์เฟซ
การใช้งาน
Windows, ข้อความ, SysUtils, ตัวแปร, คลาส, กราฟิก, การควบคุม, แบบฟอร์ม,
กล่องโต้ตอบ, StdCtrls, FileCtrl, ปุ่ม, Activeds_TLB;
พิมพ์
TIISConfigFrm = คลาส (TForm)
edtAlias: TEdit;
Label1: TLabel;
dlbIIS: TDirectoryListBox;
dcbIIS: TDriveComboBox;
Label2: TLabel;
edtPath: TEdit;
GroupBox1: TGroupBox;
cbRead: TCheckBox;
cbScript: TCheckBox;
cbExecute: TCheckBox;
cbWrite: TCheckBox;
cbBrowse: TCheckBox;
bbtOK: TBitBtn;
lblPath:TLabel;
กระบวนการ dlbIISChange (ผู้ส่ง: TObject);
ขั้นตอน bbtOKClick (ผู้ส่ง: TObject);
ขั้นตอน FormCreate (ผู้ส่ง: TObject);
ส่วนตัว
{ประกาศส่วนตัว}
สาธารณะ
{ประกาศสาธารณะ}
จบ;
ฟังก์ชั่น ADsGetObject (const PathName: WideString; const GUID: TGUID; ออก I: IUnknown): HRESULT;
var
IISConfigFrm: TIISConfigFrm;
การดำเนินการ
{$R *.dfm}
ฟังก์ชัน ADsGetObject; ชื่อ 'ActiveDS.dll' ภายนอก 'ADsGetObject';
ขั้นตอน TIISConfigFrm.dlbIISChange (ผู้ส่ง: TObject);
เริ่ม
edtPath.Text:=dlbIIS.Directory;
จบ;
ขั้นตอน TIISConfigFrm.bbtOKClick (ผู้ส่ง: TObject);
var
ฉัน: IADsContainer;
โฆษณา: IAD;
เริ่ม
ถ้า ความยาว(Trim(edtAlias.Text))=0 ให้เริ่มต้น
application.MessageBox('นามแฝงไม่สามารถเว้นว่างได้!','คำเตือน');
ออก;
จบ;
ถ้า ความยาว(Trim(edtPath.Text))=0 ให้เริ่มต้น
Application.MessageBox('กรุณาเลือกตำแหน่งไดเรกทอรีเสมือน!','คำเตือน');
ออก;
จบ;
ถ้า ADsGetObject('IIS://localhost', IID_IADsContainer, IUnknown(I)) = S_Ok ให้เริ่ม //IIS ได้รับการติดตั้งแล้ว
ถ้า ADsGetObject('IIS://localhost/w3svc', IID_IADsContainer, IUnknown(I)) = S_Ok ให้เริ่ม // มีเว็บเซิร์ฟเวอร์อยู่
โฆษณา := IADs(I.GetObject('IIsWebServer', '1')); //รับบริการ
ถ้า ADs.QueryInterface(IID_IADsContainer, I) = S_OK จากนั้นเริ่ม // การสนับสนุนบริการ
โฆษณา := IADs(I.GetObject('IIsWebVirtualDir', 'Root')); //สร้างไดเรกทอรีเสมือนภายใต้รูทของเว็บเซิร์ฟเวอร์
ถ้า ADs.QueryInterface(IID_IADsContainer, I) = S_OK จากนั้นเริ่ม // การสนับสนุนบริการ
พยายาม
โฆษณา := IADs(I.Create('IIsWebVirtualDir', edtAlias.Text)); //สร้างไดเรกทอรีเสมือนด้วยนามแฝงของ edtAlias.Text
ยกเว้น
Application.MessageBox('มีนามแฝงนี้อยู่แล้ว กรุณาเลือกนามแฝงอื่น!', 'คำเตือน');
ออก;
จบ; //ลองยกเว้น
ADs.Put('accessRead', cbRead.Checked); //ตั้งค่าแต่ละพารามิเตอร์
ADs.Put('AccessWrite', cbWrite.ตรวจสอบ);
ADs.put('AccessScript',cbScript.Checked);
ADs.Put('AccessExecute',cbExecute.Checked);
ADs.put('EnableDirBrowsing',cbBrowse.Checked);
ADs.Put('Path', 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 (ผู้ส่ง: TObject);
เริ่ม
edtPath.Text:=dlbIIS.Directory;
จบ;
จบ.