下面图老师小编要跟大家分享用DELPHI通过写注册表来实现建立IIS的虚拟目录,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!
【 tulaoshi.com - 编程语言 】
网上有很多关于用DELPHI来建立IIS的虚拟目录的例子,但都是需要加载类库,我这里则采用写注册表的方式来实现,方法简单,主要是不需要加入类的复杂过程,唯一的不同是需要重启电脑后才能生效。代码如下:
  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('SYSTEMControlSet001ServicesW3SVCParametersVirtual 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+'inetsrvinetmgr.exe'),sw_shownormal);
         exit;
      end
    else
      begin
    registerTemp := TRegistry.Create; //建立一个Registry实例
    with registerTemp do
      begin
        RootKey:=HKEY_LOCAL_MACHINE;//设置根键值为HKEY_LOCAL_MACHINE
  //找到或创建SYSTEMControlSet001ServicesW3SVCParametersVirtual Roots,写入IIS配置信息
       if OpenKey('SYSTEMControlSet001ServicesW3SVCParametersVirtual 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()来替代。如大家对此有兴趣的话可以与我联系。xh416@163.net   QQ:49055028
  
来源:http://www.tulaoshi.com/n/20160219/1602025.html
看过《用DELPHI通过写注册表来实现建立IIS的虚拟目录》的人还看了以下文章 更多>>