لقد كنت أرغب في ترتيب أشيائي الخاصة منذ فترة طويلة، لكن لم يكن لدي الوقت، ومهاراتي منخفضة جدًا، وأخشى إضاعة وقت الآخرين، لذلك لم أكتب أي شيء بعد . ولكن في كل مرة أرى مقالات الآخرين، أشعر بالحكة، لذلك أجد منشورًا قمت بنشره على www.delphibbs.com لرد الجميل للجميع.
{*************************************************************************************************************************************************************************** * ********************* }
{ }
{ }
{ تشاو تشن هوا }
{}
{ حقوق الطبع والنشر لـ zhao zhenhua البريد الإلكتروني: [email protected] }
{ }
{*************************************************************************************************************************************************************************** * ********************* }
Unit MainUnt;
واجهة
الاستخدامات
النوافذ، الرسائل، SysUtils، المتغيرات، الفئات، الرسومات، عناصر التحكم، النماذج،
مربعات الحوار، StdCtrls، FileCtrl، Buttons،Activeds_TLB؛
يكتب
TIISConfigFrm = فئة(TForm)
الاسم المستعار: TEdit؛
التسمية 1: TLabel؛
dlbIIS: TDirectoryListBox;
dcbIIS: TDriveComboBox;
التسمية 2: TLabel؛
edtPath: TEdit;
GroupBox1: TGroupBox;
cbRead: TCheckBox;
cbScript: TCheckBox;
cbExecute: TCheckBox;
cbWrite: TCheckBox;
cbBrowse: TCheckBox;
bbtOK: TBitBtn;
lblPath:TLabel;
PROcedure dlbIISChange(Sender: TObject);
الإجراء bbtOKClick(Sender: TObject);
الإجراء FormCreate(Sender: TObject);
خاص
{تصريحات خاصة}
عام
{التصريحات العامة}
نهاية؛
وظيفة ADsGetObject(const PathName: WideString; const GUID:TGUID; out I: IUnknown): HRESULT;
فار
IISConfigFrm: TIISConfigFrm;
تطبيق
{$R *.dfm}
وظيفة ADsGetObject؛ اسم "ActiveDS.dll" الخارجي "ADsGetObject"؛
الإجراء TIISConfigFrm.dlbIISChange(Sender: TObject);
يبدأ
edtPath.Text:=dlbIIS.Directory;
نهاية؛
الإجراء TIISConfigFrm.bbtOKClick(Sender: TObject);
فار
I: IADsContainer؛
الإعلانات: IADs؛
يبدأ
إذا كان Length(Trim(edtAlias.Text))=0 فابدأ
application.MessageBox("لا يمكن أن يكون الاسم المستعار فارغًا!",'تحذير');
مخرج؛
نهاية؛
إذا كان Length(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 ثم ابدأ // خادم الويب موجود
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('هذا الاسم المستعار موجود بالفعل، يرجى اختيار اسم مستعار آخر!', 'تحذير');
مخرج؛
النهاية؛ // حاول باستثناء
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('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(Sender: TObject);
يبدأ
edtPath.Text:=dlbIIS.Directory;
نهاية؛
نهاية.