原文 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);

Inno Setup 创建站点,创建虚拟目录的更多相关文章

  1. INNO SETUP脚本向导创建的基本脚本

    脚本范例分析:先来看看一段用INNO SETUP脚本向导创建的基本脚本的[Setup]段: [Setup]   AppName=Premiere 6.5 汉化补丁-----------------(程 ...

  2. IIS6中给Framework2,。0站点的虚拟目录(2.0版本)下发布Web API项目(4.0版本)问题处理

    Web-API项目以虚拟目录形式部署到IIS6/IIS7 若原有站点为Framework2.0版本,在此站点(或虚拟目录站点)下,新增API虚拟目录,然后选择Framework4.0版本,IIS6和I ...

  3. 导出IIS Log列表,导出站点下虚拟目录列表

    Add-Type -AssemblyName System.Web import-module webadministration $ip = (gwmi Win32_NetworkAdapterCo ...

  4. [php]修改站点的虚拟目录

    wamp默认的站点的目录是www的目录,可以修改appache的httpd.conf文件来修改目录,修改方法如下: 1. <Directory "D:/SoftWare/wamp/ww ...

  5. C#获取IIS所有站点及虚拟目录和应用程序(包含名称及详细信息)

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. C# 获取IIS站点及虚拟目录信息

    using System; using System.DirectoryServices; using System.Collections.Generic; using System.Text; n ...

  7. 服务器资源共享--IIS站点/虚拟目录中访问共享目录(UNC)

    本文重点描述如何使用IIS访问共享资源来架设站点或执行 ASP.Net 等脚本. 通常情况下,拥有多台服务器的朋友在使用IIS建立站点的时候,会遇到如何把多台服务器的资源合并到一起的问题.如何让A服务 ...

  8. 在IIS7中使用ARR(Application Request Routing)反向代理虚拟目录到Nodejs站点

    目标: 1.访问www.arrdemo.com/proxy 跳转到 localhost:8898的Nodejs站点 2.Nodejs站点的页面可以返回到浏览器,包括js,css,图片 3.Nodejs ...

  9. 重启虚拟目录或站点,不重启iis

    更改站点或虚拟目录的.net Framework 版本会导致重启整个iis服务,所以需要单独重启某个站点或虚拟目录 首先右键点击网站-所有任务-将配置保存到一个文件,从文件中查找到 Location ...

  10. IIS站点/虚拟目录中访问共享目录(UNC)以及建立后的应用程序的信任级别问题

      UNC是 Universal Naming Convention 的简称,也叫通用命名规范.通用命名约定.网络(范指局域网)上资源的完整位置名称.格式为 \\servername\sharenam ...

随机推荐

  1. BZOJ 1084 最大子矩阵

    http://www.lydsy.com/JudgeOnline/problem.php?id=1084 思路:分m=1和m=2操作 #include<algorithm> #includ ...

  2. MFC界面开发(QQ透明皮肤:多层算法,一键适配各种背景 )

    http://blog.csdn.net/kent19900125/article/category/1368203/3 QQ透明皮肤:多层算法,一键适配各种背景 . http://blog.csdn ...

  3. 数据类型MSVC和gcc/g++的不同

    前言: 在16位环境下,int/unsigned int 占16位,long/unsigned long占32位 在32位环境下,int占32位,unsigned int占16位,long/unsig ...

  4. Android Studio 调试过程中快捷查看断点处变量值(Ctrl+Shift+I无效)?

    当你在做Keymap到Eclipse后,在debug过程中,在Eclipse中我们很喜欢用Ctrl+Shift+I去查看一个运算或者调用的结果,这样用起来很方便.但是keymap到Eclipse后,你 ...

  5. 2014第2周三Web安全学习

    2014第2周三Web安全学习 先记录下自己关于json和xml作为数据传递媒介的差异:在写一个java方法时我将正确结果返回的对象转成json返回,将错误结果根据不同原因以xml形式返回,同事看后有 ...

  6. 剑指offer-面试题5.从尾到头打印链表

    题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值. 刚看到这道题的小伙伴可能就会想,这还不简单,将链表反转输出. 但是这种情况破坏了链表的结构. 如果面试官要求不破坏链表结构呢,这时候我们 ...

  7. Median of Two Sorted Arrays (找两个序列的中位数,O(log (m+n))限制) 【面试算法leetcode】

    题目: There are two sorted arrays A and B of size m and n respectively. Find the median of the two sor ...

  8. MyCat 安装部署,实现数据库分片存储

    一.安装MySQL或MariaDB(本文以MariaDB为例) MySQL手动安装方法:点击查看 MariaDB安装: 1.下载MariaDB的repo $ vi /etc/yum.repos.d/M ...

  9. CSDN-Markdown语法集锦

    前言: 使用Markdown近一个来月.越来越认为不舒爽. 改字体.改字号.改颜色.改样式,全不会!想加个数学公式.得,仅仅会截图.把图片传上去了还不会控制大小.也不会控制文字与图片的排版,写出来的博 ...

  10. Reflux 使用教程

    Reflux是根据React的flux创建的单向数据流类库.Reflux的单向数据流模式主要由actions和stores组成.例如,当组件list新增item时,会调用actions的某个方法(如a ...