ずっと自分のことを整理したいと思っていたんですが、時間がないし、スキルも低いし、他人の時間を無駄にするのが怖いので、まだ何も書いていません。 。しかし、他の人の記事を見るたびにムズムズするので、皆さんにお返しするために www.delphibbs.com で公開した投稿を見つけました。
{************************************************ * ********************** }
{ }
{ }
{趙振華}
{}
{ 著作権 趙振華 電子メール:[email protected] }
{ }
{************************************************ * ********************** }
ユニット MainUnt;
インタフェース
用途
ウィンドウ、メッセージ、SysUtils、バリアント、クラス、グラフィックス、コントロール、フォーム、
ダイアログ、StdCtrls、FileCtrl、ボタン、Activeds_TLB;
タイプ
TIISConfigFrm = クラス(TForm)
edtAlias: TEdit;
ラベル 1: T ラベル;
dlbIIS: TDirectoryListBox;
dcbIIS: TDriveComboBox;
ラベル 2: T ラベル;
edtPath: TEdit;
グループ ボックス 1: TG グループ ボックス;
cbRead: TCheckBox;
cbScript: TCheckBox;
cbExecute: TCheckBox;
cbWrite: TCheckBox;
cbBrowse: TCheckBox;
bbtOK: TBitBtn;
lblパス:Tラベル;
プロシージャ dlbIISChange(送信者: TObject);
プロシージャ bbtOKClick(送信者: 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(送信者: TObject);
始める
edtPath.Text:=dlbIIS.Directory;
終わり;
プロシージャ TIISConfigFrm.bbtOKClick(送信者: TObject);
変数
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 begin //IIS はインストールされています
if ADsGetObject('IIS://localhost/w3svc', IID_IADsContainer, IUnknown(I)) = S_Ok then begin //Web サーバーが存在します
ADs := IADs(I.GetObject('IIsWebServer', '1')) // サービスを取得します。
if ADs.QueryInterface(IID_IADsContainer, I) = S_OK then begin //サービス サポート
ADs := IADs(I.GetObject('IIsWebVirtualDir', 'Root')) //Web サーバーのルート下に仮想ディレクトリを作成します。
if ADs.QueryInterface(IID_IADsContainer, I) = S_OK then begin //サービス サポート
試す
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('パス', 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;
終わり;
終わり。