奇趣技术网 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 技术论坛
中华网络安全联盟 >> 程序开发 >> Delphi >> 用DELPHI写注册表实现建立IIS虚拟目录
程序开发
Asp
PHP
JSP
CGI/Perl
XML
.Net
C/C++/C#
Visual Basic
Visual C++
Delphi
Java
汇编语言
  • Delphi实现网页表单数

  • 用Delphi开发Web服务数

  • Delphi中利用钩子实现

  • 一个判断定文件是否为

  • 把Flash文件转换为Exe

  • 用Delphi实现文件下载

  • Delphi中保存图像列表

  • 基于Delphi的接口编程

  • 用DELPHI写注册表实现建立IIS虚拟目录
    字体:

    中华网络安全联盟    作者:佚名    来源:网络转载    时间:2006-3-22

      [原创] 计世商情网 徐辉   
         
      最近笔者在制作一安装程序时遇到需动态建立虚拟目录的问题,通过在网上查找相关资料,发现有很多关于用DELPHI来建立IIS的虚拟目录的例子,但都是需要加载类库,不容量调试,且对类库知识的掌握程度要求较高   
    。笔者就是几次调试都没通过(能力有限,知识有限呀:-(),自古通向罗马就不止一条道。通过对注册表的研究,终于让我发现了IIS在注册表中的老巢,通过N次研究(N<3)终于弄清动态建立虚拟目录的方法。笔者所采用的是通过写注册表的方式来实现,方法简单,不需要加入类的复杂过程,唯一的不同是需要重启电脑后才能生效。现将代码公布如下,希望对能对此有兴趣的朋友们有所帮助,代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      RegODBC:TRegistry;
      registerTemp : TRegistry;
      SysPath: array [0..255] of char;
    begin
      RegODBC:=TRegistry.create;     //访问注册表
      RegODBC.RootKey:=HKEY_LOCAL_MACHINE;
      RegODBC.OpenKey('\SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots',True);
      getsystemdirectory(SysPath,255);
      if regodbc.ValueExists('/fire') then
        begin
          suimessage1.Text:='本机WEB已存在名为fire的虚拟目录。'+#13#10+'请将此fire删除或重命名。';
            suimessage1.IconType:=suistop;
            suimessage1.ButtonCount:=1;
            suimessage1.Caption:='错误';
            if suimessage1.ShowModal=mrok then
              winexec(pchar(SysPath+'\inetsrv\inetmgr.exe'),sw_shownormal);
           exit;
        end
      else
        begin
      registerTemp := TRegistry.Create; //建立一个Registry实例
      with registerTemp do
        begin
          RootKey:=HKEY_LOCAL_MACHINE;//设置根键值为HKEY_LOCAL_MACHINE
    //找到或创建\SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots,写入IIS配置信息
         if OpenKey('\SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots',True) then
           begin
             WriteString('/fire','E:\fire,,205');
           end
         else//创建键值失败
           begin
              suimessage1.Text:='IIS配置失败,本程序即将关闭。'+#13#10+'关闭后请先检查Internet服务管理器,排除错误或安装后再运行本程序。';
              suimessage1.IconType:=suistop;
              suimessage1.ButtonCount:=1;
              suimessage1.Caption:='错误';
            if suimessage1.ShowModal=mrok then
               application.Terminate ;
           end;
         CloseKey;
        Free;
      end;    
        end;
      RegODBC.Free;
    end;

    说明:代码中用到了suipack4控件的suimessagedialog组件(起提示作用),例子的确认窗口也可通过Application.MessageBox()来替代。代码在DELPHI6+WINDOWS2000中调试通过。 

    字体:
     
    设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
    Copyright©2006-2008 中华网络安全联盟 All rights reserved.