Inno Setup 创建站点,创建虚拟目录

简介: 原文 http://hi.baidu.com/0531_sunmiles/item/ce22554ab7d33d0be9350477 下面的这段代码是用Inno Setup 做安装包的时候创建IIS新的站点用的。

原文 http://hi.baidu.com/0531_sunmiles/item/ce22554ab7d33d0be9350477

下面的这段代码是用Inno Setup 做安装包的时候创建IIS新的站点用的。因为是测试的,所以罗列了很多功能。虽然我现在用不到这么多,还是怕忘记了,做个备份。注释的部分也很宝贵啊。

本文同期发布在 论坛: http://www.jn18178.cn

{---IIS部分---}
const
IISServerName = 'localhost';

IISServerNumber = '1';
IISURL = 'http://127.0.0.1';
procedure IISButtonOnClick(Sender: TObject);
var
IIS, WebSite, WebServer, WebRoot, VDir: Variant;
WNumber,NNumber,flag,ErrorCode: Integer;
begin

if MsgBox('安装将要连接到IIS服务器 ''' + IISServerName + ''' 并创建虚拟目录,要继续吗?', mbInformation, mb_YesNo) = idNo then
    Exit;
    
try
     IIS := CreateOleObject('IISNamespace');
except
    RaiseException('请先安装IIS!.'#13#13'(Error ''' + GetExceptionMessage + ''' occurred)');
end;

WebSite := IIS.GetObject('IIsWebService', GetComputerNameString() + '/w3svc');


WNumber := 1;

Repeat

flag    := 0;
try
    WebServer := WebSite.GetObject('IIsWebServer', inttostr(WNumber));
except
    flag := 1;
    WNumber := WNumber + 1;

end;

if (flag = 0) or (WNumber > 100) then
begin
     NNumber := WNumber + 1;
     WNumber :=0;
end;

until WNumber=0;

//MsgBox('X'+inttostr(NNumber), mbInformation, mb_Ok);

          WebServer := WebSite.Create('IIsWebServer','911');
          WebServer.ServerComment := '发票打印系统';
          WebServer.Serverbindings := ':8888:';
          WebServer.defaultDoc := 'default.asp';
          WebServer.AccessScript :=    TRUE;
          WebServer.AccessExecute := TRUE;
          WebServer.AccessRead :=    TRUE;
          WebServer.SetInfo();

   WebServer := WebSite.GetObject('IIsWebServer', '911');
   
WebRoot := WebServer.Create('IIsWebVirtualDir', 'Root');
WebRoot.Path := 'C:\temp';

WebRoot.AppFriendlyName := '默认应用程序';

WebRoot.AppCreate(True);
WebRoot.AccessRead := TRUE;

          WebRoot.AccessScript   :=   TRUE;
          WebRoot.AccessExecute   :=TRUE;
          WebRoot.AccessRead :=   TRUE;
WebRoot.SetInfo();


//try
// WebRoot.Delete('IIsWebVirtualDir', 'innosetup');
// WebRoot.SetInfo();
//except
//end;

VDir := WebRoot.Create('IIsWebVirtualDir', 'innosetup');
VDir.AccessRead := True;
VDir.AppFriendlyName := '发票打印程序';
VDir.Path := 'D:\temp';
VDir.AppCreate(True);
VDir.SetInfo();

MsgBox('Created virtual directory ''' + VDir.Path + '''.', mbInformation, mb_Ok);

{ Write some html and display it }

if MsgBox('Setup will now write some HTML and display the virtual directory. Do you want to continue?', mbInformation, mb_YesNo) = idNo then
    Exit;

ForceDirectories(VDir.Path);
//SaveStringToFile(VDir.Path + '/index.htm', '<html><body>Inno Setup rocks!</body></html>', False);
//if not ShellExec('open', IISURL + '/innosetup/index.htm', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode) then
// MsgBox('Can''t display the created virtual directory: ''' + SysErrorMessage(ErrorCode) + '''.', mbError, mb_Ok);

目录
相关文章
|
8月前
|
XML 数据格式 Windows
IIS服务启动提示当文件已存在时,无法创建该文件,183
IIS服务启动提示当文件已存在时,无法创建该文件,183
233 0
|
应用服务中间件 PHP nginx
mac环境composer新建php的symfony项目并用nginx配置
mac环境composer新建php的symfony项目并用nginx配置
158 0
mac环境composer新建php的symfony项目并用nginx配置
|
Linux
【Linux】安装svn并设置钩子同步到web目录
【Linux】安装svn并设置钩子同步到web目录
109 0
|
Windows
windows批量修改文件、文件夹名工具:Bulk Rename Utility批量改名演示
windows批量修改文件、文件夹名工具:Bulk Rename Utility批量改名演示
495 0
windows批量修改文件、文件夹名工具:Bulk Rename Utility批量改名演示
|
Web App开发 安全
为了dede系统安全把data目录迁移到web以外目录
为了dede系统安全把data目录迁移到web以外目录 - 发表于:DEDE技术吧 - Dede教程 data目录是系统缓存和配置文件的目录,一般都有可以读写的权限,只要是能够写入的目录都可能存在安全隐患,很多站长甚至给予这个目录可执行的权限,更是非常危险,所以我们建议将这个data目录搬移出Web可访问目录之外。
896 0
Confluence 6 虚拟文件和文件夹
在取消点赞事件中,你可能会遇到 WebDAV  客户端的问题或者不稳定的情况,你可以启用访问自动创建(虚拟)文件和文件夹。
974 0
|
存储 应用服务中间件 数据格式
Confluence 6 创建站点的导出文件
希望为你的站点创建一个 XML 导出文件: 进入  > 基本配置(General Configuration) > 备份和恢复(Backup & Restore)。
1069 0
|
存储 Java 应用服务中间件
Confluence 6 导入 Active Directory 服务器证书 - Windows
为了让你的应用服务器能够信任你的目录服务器。你目录服务器上导出的证书需要导入到你应用服务器的 Java 运行环境中。JDK 存储了信任的证书,这个存储信任证书的文件称为一个 keystore。
1105 0