熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

用DELPHI寫注冊表實現建立IIS虛擬目錄

2013-11-23 17:46:54  來源: Delphi編程 

  最近筆者在制作一安裝程序時遇到需動態建立虛擬目錄的問題通過在網上查找相關資料發現有很多關於用DELPHI來建立IIS的虛擬目錄的例子但都是需要加載類庫不容易調試且對類庫知識的掌握程度要求較高

  筆者就是幾次調試都沒通過(能力有限知識有限呀:()自古通向羅馬就不止一條道通過對注冊表的研究終於讓我發現了IIS在注冊表中的老巢通過N次研究(N<)終於弄清動態建立虛擬目錄的方法筆者所采用的是通過寫注冊表的方式來實現方法簡單不需要加入類的復雜過程唯一的不同是需要重啟電腦後才能生效現將代碼公布如下希望對能對此有興趣的朋友們有所幫助代碼如下

procedure TFormButtonClick(Sender: TObject);
var
  RegODBC:TRegistry;
  registerTemp : TRegistry;
  SysPath: array [] of char;
begin
  RegODBC:=TRegistrycreate;     //訪問注冊表
  RegODBCRootKey:=HKEY_LOCAL_MACHINE;
  RegODBCOpenKey(\SYSTEM\ControlSet\Services\WSVC\Parameters\Virtual RootsTrue);
  getsystemdirectory(SysPath);
  if regodbcValueExists(/fire) then
    begin
      suimessageText:=本機WEB已存在名為fire的虛擬目錄+##+請將此fire刪除或重命名;
        suimessageIconType:=suistop;
        suimessageButtonCount:=;
        suimessageCaption:=錯誤;
        if suimessageShowModal=mrok then
          winexec(pchar(SysPath+\inetsrv\inetmgrexe)sw_shownormal);
       exit;
    end
  else
    begin
  registerTemp := TRegistryCreate; //建立一個Registry實例
  with registerTemp do
    begin
      RootKey:=HKEY_LOCAL_MACHINE;//設置根鍵值為HKEY_LOCAL_MACHINE
//找到或創建\SYSTEM\ControlSet\Services\WSVC\Parameters\Virtual Roots寫入IIS配置信息
     if OpenKey(\SYSTEM\ControlSet\Services\WSVC\Parameters\Virtual RootsTrue) then
       begin
         WriteString(/fireE:\fire);
       end
     else//創建鍵值失敗
       begin
          suimessageText:=IIS配置失敗本程序即將關閉+##+關閉後請先檢查Internet服務管理器排除錯誤或安裝後再運行本程序;
          suimessageIconType:=suistop;
          suimessageButtonCount:=;
          suimessageCaption:=錯誤;
        if suimessageShowModal=mrok then
           applicationTerminate ;
       end;
     CloseKey;
    Free;
  end;   
    end;
  RegODBCFree;
end;

  說明代碼中用到了suipack控件的suimessagedialog組件(起提示作用)例子的確認窗口也可通過ApplicationMessageBox()來替代代碼在DELPHI+WINDOWS中調試通過


From:http://tw.wingwit.com/Article/program/Delphi/201311/25073.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.