inno setup(Inno Setup 编译器”如何打包 javaWeb 应用程序,自动设置环境变量)

Inno Setup 编译器”如何打包 javaWeb 应用程序,自动设置环境变量

三、打包步骤1、打开Inno Setup编译器,新建脚本向导,填写程序的基本信息,如图:2、点击下一步,选择文件类型与名称;3、点击下一步,勾取“”应用程序没有主执行文件,并添加文件夹,如上面提到的D:webexe,并把子文件夹中的文件包含在内4、点击下一步,选取程序图标设置;5、点击下一步,指定安装前后显示的文件信息和许可文件;6、点击下一步,选择安装语言;7、点击下一步,选择编译器输出的路径和exe安装包的名称等,如图:8、点击下一步,编译脚本即完成。打开

Inno Setup安装如何安装到指定目录

inno setup(Inno Setup 编译器”如何打包 javaWeb 应用程序,自动设置环境变量)

inno setup 段参数说明: DefaultDirName 说明: 这是个必需的关键字,该值是默认的目录名称,用于“选择目录页”向导。通常它有一个目录常量前缀。 如果 UsePreviousAppDir 是 yes (默认值)并且安装程序发现已经安装了一个相同应用程序的早期版本,它将用先前选择的目录代替默认的目录名称。 示例: 如果你使用: DefaultDirName={sd}\MYPROG 在 Setup 中,典型地应有如下显示: C:\MYPROG 如果你使用: DefaultDirName={pf}\My Program 在 Setup 中,典型地应有如下显示: C:\Program Files\My Program : DisableDirPage 有效值: yes 或 no 默认值: no 说明: 如果该项设置为 yes, 安装程序将不会显示“选择目标文件夹”向导页。在这种情况下,它将始终使用默认的目录名。: DisableFinishedPage 有效值: yes 或 no 默认值: no 说明: 如果该项设置为 yes, 安装程序将不会显示“安装完成”向导页,并且在一次安装过程结束后会立即关闭安装程序。如果在 段里面有一个要被执行的程序使用了 nowait 标记,并且你不希望在该程序被启动之候安装完成窗口还逗留在后台,此时该项是有用的。 注意安装程序认为要重新启动计算机,或如果指派了一个文件给 段的 InfoAfterFile 关键字,都将忽略 DisableFinishedPage 关键字。象这些情况,仍然会显示“安装完成”向导页。 : DisableProgramGroupPage 有效值: yes 或 no 默认值: no 说明: 如果该项设置为 yes, 安装程序将不会显示“选择程序组”向导页。在这种情况下,它将使用由 段的 DefaultGroupName 关键字指定的组名,或者“(Default)”如果没有指定组名的话。

inno setup 5 添加快捷方式总是默认选中,该怎么修改

inno setup 5 添加快捷方式总是默认选中,修改方法如下:

在  //tasks 任务中找到desktopicon桌面,点击“非选中”即可。  

一、方法:

1、双击桌面的:Inno setup compiler图标,弹出一个选择界面,可以选择最近打包的文件,也可以选择重新创建一个打包文件。这里以重新创建打包文件为例。

2、然后点击下一步,在应用名称中输入产品的名称、版本号、公司网址等信息。最好在这里填写好,这样就会自动生成在脚本中,不需要修改。

3、然后点击下一步,选择打包好的文件,输出地址,以及输出的文件夹名字。

4、点击add file(S)...按钮,选择需要打包的文件,全部添加进来;

点击add folder...按钮,选择需要打包的文件夹,全部添加进来。

5、点击下一步,输入应用程序在开始菜单中显示的名字。

6、点击下一步,选择在安装时需要显示的信息、安装语言、安装名称等。

7、最后,点击完成,设置的程序就完成了。只要点击编译运行,打包文件就可以集合成一个安装文件了。就可以进行刻盘安装了。

二、inno setup 5的脚本说明:

1、Win-Masm为主程序的名称。

2、 字段下 Name{group};/{cm:UninstallProgram,Win-Masm}"; Filename: "{uninstallexe}",两部分脚本实现发送一个卸载主程序的快捷方式至开始菜单程序组中。

3、字段下的下四条语句实现主程序所用控件的注册。

4、注意各资源文件的路径及名称。

inno setup判断系统是32位还是64位

使用IsWin64函数来检测系统,以下为函数说明:示例:begin if IsWin64 then begin MsgBox(’64 位系统’, mbInformation, MB_OK); end; else begin MsgBox(’32 位系统’, mbInformation, MB_OK); end;end;IsWin64函数说明:语法:function IsWin64: Boolean;描述:如果系统运行于提供 Inno Setup 执行 64 位安装任务所需的 API 支持的 64 位版本的 Windows 则返回 True。如果返回 False,你不能使用任何 Inno Setup 的只能用于 64 位的功能。注释:如果用户运行一个早期版本的 64 位 Windows,象不带 Service Pack 1 的 Itanium 版本 Windows Server 2003,这个函数有可能会返回 False。这些老版本缺少 Inno Setup 所需的 API (例如 RegDeleteKeyEx)。

inno setup安装包制作问题

软件安装打包工具----Inno Setup 使用说明特殊用途的标识 有几个 段的项实际上不是用于在屏幕上显示的,它们是用于在安装程序中指定所使用的字体和字型号的。这些可选项中的每一个都有一个前导下划线字符 (“_”) 开始,请参阅 Default.isl 文件头部的注释的使用方法示例。 段 这个段是可选的,他定义了一些注册表项,用于在复制完文件之后创建在用户的系统中。 下面是 段的一个示例。 Root: HKCU; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty Root: HKCU; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey Root: HKLM; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty Root: HKLM; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey Root: HKLM; Subkey: "Software\My Company\My Program"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}" 下面列出了支持的参数: Root (必需的) 说明: 根键,必须是下列各项之一: HKCR (HKEY_CLASSES_ROOT) HKCU (HKEY_CURRENT_USER) HKLM (HKEY_LOCAL_MACHINE) HKU (HKEY_USERS) HKCC (HKEY_CURRENT_CONFIG) 示例: Root: HKCU Subkey (必需的) 说明: 子键名称,可以包括常量。 示例: Subkey: "Software\My Company\My Program" ValueType 说明: 键值的数据类型,必须是下列各项之一: none string expandsz multisz dword binary 如果指定了 none (默认设置),安装程序将创建一个没有键值的键,在这种情况下将忽略 ValueName 和 ValueData 参数。 如果指定了 string,安装程序将创建一个字符串 (REG_SZ) 值。 如果指定了 expandsz,安装程序将创建一个扩展字符串 (REG_EXPAND_SZ) 值。这种数据类型主要用在 Windows NT 上,但是也支持 Windows 95/98. 如果指定了 multisz,安装程序将创建一个多行文本 (REG_MULTI_SZ) 值。 如果指定了 dword,安装程序将创建一个整数 (REG_DWORD) 值。 如果指定了 binary,安装程序将创建一个二进制 (REG_BINARY) 值。 示例: ValueType: string ValueName 说明: 要创建的键值的名称,可以包含常量。如果它是空的,将会写入“默认”(Default)值中。如果ValueType 参数被设置为 none, 该参数将被忽略。 示例: ValueName: "Version" ValueData 说明: 键值的数据。如果 ValueType 参数是 string, expandsz 或 multisz, 该参数是一个可以包含常量的字符串。如果数据类型是 dword, 该参数可以是一个十进制整数(例如“123”)或者是一个十六进制整数(例如“$7B”)。如果数据类型是 binary, 这是一个十六进制字节序列的形式:“00 ff 12 34”。如果数据类型是 none, 该参数被忽略。对于一个 string, expandsz 或者 multisz 类型的键值,在这个参数中你可以使用一个特殊的叫做 {olddata} 的常量。{olddata} 常量代表的是注册表键值原来的数据。如果你想要添加一个字符串到一个已经存在的键值时 {olddata} 常量时很有用的,例如,{olddata};{app}.如果该键值并不存在或者不是一个字符串类型,这时 {olddata} 常量会被默默地删除。如果正要被创建的键值是 multisz 类型,但是已经存在的键值并不是多行文本 (例如它是 REG_SZ 或 REG_EXPAND_SZ )类型,这时 {olddata} 常量也会被默默地删除,反之亦然。对于一个 multisz 类型的键值,在这个参数中你可以使用一个特殊的叫做 {break} 的常量来嵌入换行(nulls)。示例: ValueData: "1.0" Flags 说明: “标记”,这个参数是一个附加的选项集合,可以多个选项共同使用,使用空格分开多个选项。下面列出了被支持的选项: createvalueifdoesntexist 当指定了此标记时,只有当相同名称的键值不存在时安装程序才会创建该键值。如果数据类型是 none ,或者同时指定了 deletevalue 标记将忽略该标记。 deletekey 当指定了此标记时,如果该项已存在,安装程序会首先尝试去删除它,包括其中的键值和子键,然后如果 ValueType 不是 none 的话它将创建一个新的键和键值。deletevalue 当指定了此标记时,如果该键值已存在,安装程序会首先尝试删除该键值。然后如果 ValueType 不是 none ,并且该键不存在时它将创建该键和新的键值。 dontcreatekey 当指定了此标记时,如果该键不存在于用户的系统中安装程序将不会试图创建该键或任何键值。如果改建不存在将不显示错误消息。 典型地该标记同 uninsdeletekey 标记结合使用,以便在安装时没有创建该键时确保在卸载期间删除该键。 noerror 如果安装程序在创建键或键值时无论什么原因失败不显示错误消息。 preservestringtype 该标记只用于 ValueType 参数为 string 或 expandsz 时。当指定了此标记并且该键值不存在或者已存在的键值不是字符串类型 (REG_SZ 或 REG_EXPAND_SZ) 时,该项将由 ValueType 指定的类型创建,如果该键值存在并且是一个字符串类型,该项将由与预先存在的键值相同的键值类型替代。 uninsclearvalue 当程序被卸载时,将设置该键值的数据为空的字符串 (类型 REG_SZ). 该标记不能同 uninsdeletekey 标记一起使用。 uninsdeletekey 当程序被卸载时,删除整个键,包括其下全部的键值和子键。对于由 Windows 自身使用的键来说使用该标记明显不是一个好的主意,你应当将该标记应用到你自己的应用程序键中。 uninsdeletekeyifempty 当程序被卸载时,如果该键下没有其它键值和子键则将其删除。该标记可以结合 uninsdeletevalue 标记一起使用。 uninsdeletevalue 当程序卸载时删除该键值,该标记可以结合 uninsdeletekeyifempty 标记一起使用。 注意:对于 Inno Setup 1.1 之前的版本,你可以与 none 数据类型一起使用该标记则将会成为 “delete key if empty” (如为空则删除该键)功能的标记。这个技巧现在已经不在被支持,你必须使用 uninsdeletekeyifempty 标记来实现该功能。 示例: Flags: uninsdeletevalue 公共参数 段 段也是可选的,指定任意数量的程序在“卸载程序”的第一步时被执行。除非下面有其它说明,两个段共有相同的语法。 每个程序按照你的脚本编排的顺序被执行,当出路 的项时,安装程序将会等到当前的程序终止之后才处理下一个,当然除非使用了 nowait 标记。这是一个 段的示例。 Filename: "{app}\INIT.EXE"; Parameters: "/x" 下面列出了支持的参数:Filename (必需的) 说明: 要被执行的程序,或要被打开的文件/文件夹。如果 Filename 不是一个 .exe 或 .com 文件,你必须在该项中使用 shellexec 标记。该参数可以包含常量。 示例: Filename: "{app}\INIT.EXE" Parameters 说明: 程序可选的命令行参数,该参数可以包含常量。 示例: Parameters: "/x" WorkingDir 说明: 程序起始位置的目录。如果没有指定该参数或该参数是空的,将不会改变任何特殊的目录。该参数可以包含常量。 示例: WorkingDir: "{app}" RunOnceId 说明: 只在 段里面有效。如果相同的应用程序被安装超过了一次,“run”项将会重复出现在卸载记录文件里面。通过将一个字符串赋值给 RunOnceId, 你可以确保一个独特的 项在卸载期间只被执行一次。例如,如果在卸载记录中的“run”中有两个或者更多的带有 RunOnceId 参数并被设置为“DelService”的项,则只有最后一个带有一个 RunOnceId 参数并被设置为“DelService”的项会被执行。其余的将被忽略。注意 RunOnceId 参数是大小写敏感的。 示例: RunOnceId: "DelService" Flags 说明: “标记”,这个参数是一个附加的选项集合,可以多个选项共同使用,使用空格分开多个选项。下面列出了被支持的选项: nowait 如果指定了该标记,将不会等待该项处理被结束运行之前就进行到下一个 项,或者结束安装程序。不能结合 waituntilidle 标记一起使用。 shellexec 如果 Filename 不是一个可以直接执行的文件(一个 .exe 或 .com 文件)则该标记是必需的。当设置了该标记时,Filename 可以是一个文件夹或者任何已注册的文件类型 ―― 包括 .hlp, .doc 等等。文件将会被用户系统中的与该文件类型相关联的应用程序打开,就像用户在资源管理器中用鼠标双击该文件一样。 当在 Filename 中使用一个文件夹名称时,建议在后面加上一个反斜杠字符(例如“{group}\”),以确保可能有相同名称的程序不会被执行。同样要注意文件夹只能在 Windows 95/NT 4+ 上被打开,因为从那时起使用了一个新的资源管理器的外壳。使用 shellexec 标记有一个缺点,那就是无法等待该过程结束,因此,它始终就像被指定了 nowait 标记一样操作。 skipifdoesntexist 如果指定了该标记,如果 Filename 不存在安装程序将不会显示错误消息。它只适用于 段,因为卸载程序从来不显示错误消息在 项执行失败时。 runmaximized 如果指定了该标记,将会在一个最大化的窗口启动程序或文档。runminimized 如果指定了该标记,将会在一个最小化的窗口启动程序或文档。 waituntilidle 如果指定了该标记,它将暂停直到该过程正在等待用户的输入并且没有未决的输入时,取而代之的是等待该过程的结束。(该标记调用 WaitForInputIdle Win32 函数.) 不能结核 nowait 一起使用。 示例: Flags: nowait 公共参数 段 该段是可选的。该段是用来定义一些附加的除了那些被安装的应用程序之外的要被卸载程序删除的文件或目录。使用该段来删除由你的应用程序创建的 .INI 文件是一个常用的办法。卸载程序在卸载过程的最后一步处理这些项。 这是一个 段的示例: Type: files; Name: "{win}\MYPROG.INI" 下面列出了支持的参数: Type (必需的) 说明: 指出要被卸载程序删除的是什么。必须是下列之一: files Name 参数指定的是一个具体的文件的名称,或者是一个带有通配符的文件名。 filesandordirs 功能上类似于 files ,但是它还可以匹配目录名称,并且任何名称匹配的目录包括其中所有的文件和子目录都会被删除。 dirifempty 当使用它时,Name 参数必须是一个目录的名称,但是它不能包括通配符。只有在不包含任何文件和子目录的情况下该目录才能被删除。 示例: Type: files Name (必需的) 说明: 要被删除的文件或目录的名称。 注意:不要试图通过在这里使用通配符去删除 {app} 目录下的全部文件,我强烈建议你不要这样做的原因由两个,首先,用户通常不会意识到可能还有他们放进应用程序目录中的数据文件将要被删除而不会得到警告(例如他们可能卸载应用程序只是为了要将它转移到一个不同的驱动器)。最好是将其保留一直到最后用户想要删除时用手工的方法删除;还有,如果由于用户的失误碰巧将程序安装到了一个错误的目录当中(例如 C:\WINDOWS)而这时去卸载它势必结果会损失惨重。再次声明,千万不要这么做! 示例: Name: "{win}\MYPROG.INI" 公共参数编译器相关 : Bits 有效值: 32 说明: 1.3 版本以后已废弃。 1.3 以前的版本的 Inno Setup 有一个 16 位的版本,编译器将检查 Bits 关键字以判断是否使用了正确的编译器来编译脚本。以后 Inno Setup 的更新的版本只有 32 位的版本可用,你将不再需要设置该关键字。无论什么时候如果 Bits 被设置为“16”,编译器都将会失败并提示一个错误消息。 : UseSetupLdr 有效值: yes 或 no 默认值: yes 说明: 告诉安装程序编译器要创建的安装程序的类型,如果是 yes, 将把所有的安装程序数据编译成一个单独的 SETUP.EXE (如果你愿意也可以重新命名为任何名称)。如果是 no, 将把安装程序数据编译成至少三个文件:SETUP.EXE, SETUP.0 和 SETUP.1. 你想使用 no 的仅有的理由大概是为了调试的目的。 注意:不要在一个使用了多磁盘生成(DiskSpanning=yes)的安装程序中使用 UseSetupLdr=no,当 UseSetupLdr 是 yes 时,安装程序被复制到用户的临时 (TEMP) 目录并在那里运行,这不会发生在 UseSetupLdr 是 no 的情况下,如果 Windows 试图去在磁盘上寻找 setup.exe 文件却不能找到,因为在驱动器中的是一个不同的磁盘,所以会产生错误的结果。 : BackColor, BackColor2 有效值: 一个值形如 $bbggrr, 这里的 rr, gg 和 bb 指定了两位的亮度值(以十六进制表示)分别为红色,绿色和蓝色。或者也可以是下列预定义的颜色名称之一:clBlack(黑色),clMaroon(暗红),clGreen(绿色),clOlive(橄榄绿),clNavy(深蓝),clPurple(紫色),clTeal(深青),clGray(灰色),clSilver(浅灰),clRed(红色),clLime(浅绿),clYellow(黄色),clBlue(蓝色),clFuchsia(紫红),clAqua(青绿),clWhite(白色)。 默认值: BackColor 为 clBlue, BackColor2 为 clBlack 说明: BackColor 关键字自定的颜色被用在安装程序窗口背景渐变色的上面(或左面,如果 BackColorDirection=lefttoright),BackColor2 指定的颜色被用在下面(或右面)。 如果 BackSolid=yes 则 BackColor2 的设置被忽略。示例:BackColor=clBlue BackColor2=clBlack BackColor=$FF0000 BackColor2=$000000 : BackColorDirection 有效值: toptobottom 或 lefttoright 默认值: toptobottom 说明: 决定了安装程序窗口的背景渐变色的渐变方向,如果 BackColorDirection 是 toptobottom, 将自上而下绘出,如果是 lefttoright, 将从左到右绘出。 : BackSolid 有效值: yes 或 no 默认值: no 说明: 它决定了安装程序窗口的背景色是使用单一颜色还是渐变色,如果是 yes, 背景色会是一单一颜色(颜色由 BackColor 指定,忽略 BackColor2)。 : AppName 说明: 这个必需的关键字指定了你正在安装的应用程序的标题。不要包含版本号,那样应该使用 AppVerName 关键字。AppName 在安装程序的全部过程始终被显示,位于安装程序屏幕的左上角和向导中。 示例: AppName=My Program : AppVerName 说明: 这个必需的关键字的值应该和 AppName 的值相同(或相似),但是它还应当包含程序的版本号。 示例: AppVerName=My Program version 3.0 : AppId 默认值: 如果没有指定 AppId 或者它是空值,编译器将会把 AppName 的值作为 AppId 来使用。 说明: AppId 的值是被存储在卸载记录文件 (unins???.dat) 里面的,以便随后的安装程序检查后决定是否可以被添加到一个特定的已存在的卸载记录,安装程序只有在已存在的卸载记录中的 AppId 和当前的安装程序的 AppId 相同是才能添加到卸载记录。举一个实际的例子,比方说你右两个安装程序,一个叫做《我的程序》而另外一个叫做《我的程序 1.1 升级版》,要想把《我的程序 1.1 升级版》添加到《我的程序》的卸载记录中,你应该设置两个安装程序的 AppId 为相同的值。 AppId 还决定了卸载注册表键的实际名称,被 Inno Setup 在其末尾附加上“_is1”(因此,如果 AppId 是 “MyProgram”,那么这个键将会被命名为“MyProgram_is1”)。Inno Setup 的早于 1.3 的版本的键的名称是基于 AppVerName 的值的。 无论什么时候 AppId 都不会被显示出来,因此你要求非常隐讳的感觉很轻松。 示例: AppId=MyProgram : AppMutex 说明: 如果用户要为当前的应用程序升级为新的版本,然而当前的应用程序正在运行,该关键字就是用来防止这类事情的发生的,而且它也可以防止用户卸载正在运行的应用程序。它指定了一个或多个同名互斥体的名称(多个互斥体用逗号隔开),安装程序和卸载程序将会在启动时检查,如果存在,安装程序/卸载程序将显示如下的信息:“ 检测到 现在正在运行。请立即关闭它的全部实例,然后单机‘确定’继续,或者‘取消’退出。” 如果你要使用这个关键字就必须在你的应用程序中以该关键字指定的名称添加一个同名的互斥体。例如在 Delphi 和 C 中创建如下显示的同名互斥体,该代码应该在应用程序启动是被执行。 Delphi: CreateMutex(nil, False, ’MyProgramsMutexName’); C: CreateMutex(NULL, FALSE, "MyProgramsMutexName"); 并不是必需在应用程序被结束之前显示的销毁同名互斥体对象,系统会自动完成此功能,也不推荐你这样做,因为理想状态下同名互斥体对象必须存在直到进程被完全终止。 注意在 Windows 下同名互斥体是大小写敏感的。 要想获得有关同名互斥体的更多信息请参阅 MS SDK 帮助的 CreateMutex 主题。 示例: AppMutex=MyProgramsMutexName : AppCopyright 说明: 可选的,它只是用来在安装程序屏幕的右下角显示一个版权消息。 示例: AppCopyright=Copyright ? 1997 My Company, Inc. : AppPublisher, AppPublisherURL, AppSupportURL, AppUpdatesURL, AppVersion 说明: 所有这些关键字都是用来在 Windows 2000 的控制面板“添加/删除程序”的“支持”对话框中显示一些信息。这些设置是可选的,并且在早期的 Windows 版本中是没有作用的。 示例: AppPublisher=My Company, Inc. ***隐藏网址***AppVersion=1.5 : DefaultDirName 说明: 这是个必需的关键字,该值是默认的目录名称,用于“选择目录页”向导。通常它有一个目录常量前缀。 如果 UsePreviousAppDir 是 yes (默认值)并且安装程序发现已经安装了一个相同应用程序的早期版本,它将用先前选择的目录代替默认的目录名称。 示例:如果你使用: DefaultDirName={sd}\MYPROG 在 Setup 中,典型地应有如下显示: C:\MYPROG 如果你使用: DefaultDirName={pf}\My Program 在 Setup 中,典型地应有如下显示: C:\Program Files\My Program : Uninstallable 有效值: yes 或 no 默认值: yes 说明: 它决定了 Inno Setup 的自动卸载程序是否被包含在安装程序中。如果是 yes 将包含卸载程序,如果是 no 将不会包括可卸载支持,最终用户只能用手工的方法删除属于你的应用程序的文件。 : MinVersion 格式: a.bb,c.dd, 这里的 a.bb 是表示 Windows 的版本,c.dd 是表示 Windows NT 的版本。 默认值: 4,4 说明: 该关键字让你指定运行你的软件所需要的最低的 Windows 或 Windows NT 的版本,默认值是“4,4”,实际上它也可以被设置为“4,3.51”来支持 NT 3.51 . 要防止你的程序被运行在 Windows 或 Windows NT 上,指定“0”为其中之一的最低版本。版本创建编号(Build numbers)和(或)服务包级别(Service pack levels)可以被包括在版本号中。 如果用户的系统不适合所要求的最低版本,安装程序将给出一个错误消息然后退出。 : OnlyBelowVersion 格式: a.bb,c.dd, 这里的 a.bb 是表示 Windows 的版本,c.dd 是表示 Windows NT 的版本。 默认: 0,0 说明: 该关键字让你指定不能运行你的软件的最低的 Windows 或 Windows NT 的版本(亦即高于此版本则无法运行)。指定 0 为其中之一的版本的意思是没有版本上限。版本创建编号(Build numbers)和(或)服务包级别(service pack levels)可以被包括在版本号中。 该关键字实际上是和 MinVersion 恰好相反。 : AdminPrivilegesRequired 有效值: yes 或 no 默认值: no 说明: 如果设置为 yes, 而且用户没有管理员的权限,那么安装程序在启动的时候将给出一个错误消息(“安装这个程序时你必须以管理员的身份登录。”)。它只适用于 Windows NT/2000. 具体的把你邮箱留下 我发给你!

版权声明:如无特殊标注,文章均来自网络,本站编辑整理,转载时请以链接形式注明文章出处,请自行分辨。

本文链接:https://www.shbk5.com/dnsj/79867.html