Please enable JavaScript to view this site.

Navigation: 脚本 > 运行 Prism 脚本

从 Prism 外部启动 Prism 脚本 (Windows)

Scroll Prev Top Next More

启动脚本的一种方法是在 Prism 内部进行(打开“文件”菜单并选择“运行脚本”)。您也可以在 Prism 外部启动 Prism 脚本。当您通过这种方式启动 Prism 时,如果脚本关闭了所有打开的 Prism 文件,那么在脚本结束时 Prism 将会关闭。否则,Prism 将保持打开状态。

通过桌面图标运行 Prism 脚本

要创建一个可运行 Prism 脚本的图标,请将鼠标悬停在桌面的空白处,单击鼠标右键并选择“新建…快捷方式”。输入一条用于启动 Prism 并指向要运行的 Prism 脚本文件的命令行。在脚本路径前添加 @ 符号。如果路径中包含空格,请将整个路径用引号括起来,如下所示:

“C:\PRISM5\PRISM.EXE” @”C:\PROGRAM FILES\PRISM 6\SCRIPTS\DOIT.PZC”

 

从其他程序调用 Prism

所谓“shell”,即从一个程序中启动另一个程序。本示例是一个 Excel VBA 宏中的 Shell命令示例。

Shell ("C:\prism 5\prism.exe @C:\prism 6\dr2.pzc")

Shell命令必须同时指定 prism.exe 的完整路径以及 Prism 将要启动的脚本。请在脚本名前添加 @ 符号。

两点重要说明:

Prism 将以隐身模式运行。即使运行完成,Prism 也不会显示在屏幕上。

Visual Basic 一旦启动 Prism,就会继续执行 Visual Basic 程序或宏中的下一条语句。它不会等待 Prism 完成再继续。如果您不采取下面描述的额外步骤,您的 Visual Basic 程序会在 Prism 完成文件创建之前就尝试读取包含 Prism 结果的文件。为避免这种情况,请按照下文所述,让您的 Visual Basic 程序暂停,直到 Prism 创建好文件。

编写 Prism 脚本时,请在脚本末尾添加几行代码,以创建一个文件来告知 Visual Basic 操作已完成。本示例将创建 done.txt 文件。

OpenOutput "done.txt"

WText "done"

CloseOutput

您的 Visual Basic 代码应首先删除 done.txt 文件(如果该文件是之前运行时留下的),然后启动 Prism。紧接着,加入以下代码行,使程序循环运行直至 done.txt 文件创建完成。

Do Until Dir$(“C:\prism 6\done.txt") > ""  

Application.Wait Now + TimeValue("00:00:1")

Loop

本示例中的第一行代码用于检查 done.txt 文件是否存在。请根据需要修改路径和文件名。如果文件存在(表示 Prism 已完成),Visual Basic 将跳过循环,继续执行后续代码。如果文件尚未存在,Visual Basic 将等待 1 秒,然后循环返回再次检查文件是否存在。

使用 OLE 自动化从其他程序启动 Prism

除了使用 Shell命令外,还可以通过 OLE(或 ActiveX)自动化来启动 Prism。以下是一个示例。

Set Prism = CreateObject("Prism.command")

Prism.SetPath ("C:\data\july99")

Prism.visible

Prism.runcommand (“c:\prism5\doseresp.pzc")

Prism.quit

Set Prism = Nothing

第一行创建了一个 Prism 命令对象。您可以为该对象变量指定任意名称(位于 = 符号左侧),但将其命名为 Prism 较为方便。您无需向程序指定 prism.exe 的位置,Windows 会通过注册表自动处理此事。

第二行(可选)用于指定 Prism 使用的文件夹。这省去了在 Prism 脚本中使用 SetPath 语句的必要。运行脚本时,Prism 会首先在此目录(文件夹)中查找数据文件和模板。请将文件夹名称用引号括起,或使用文本变量。

第三行指示 Prism 显示进度对话框。测试完代码后,请删除此行,以便 Prism 在后台静默运行(不显示任何对话框)。

第四行用于启动 Prism 脚本。必须包含脚本文件的完整路径;上述 SetPath 消息中指定的目录不会被自动采用。

最后两行代码将导致 Prism 退出,并释放 Prism 对象占用的内存。

Shell命令与 VBA 自动化

使用 OLE 自动化而非 Shell 语句有两个优势。首先,通过 OLE 自动化,Visual Basic 和 Prism 会顺序执行,从而避免 Visual Basic 尝试获取尚未生成的结果。其次,借助 OLE 自动化,您的 Visual Basic 程序可以指示 Prism 从特定文件夹导入数据(Prism.SetPath 命令),而无需修改 Prism 脚本。

从内联网网页启动脚本(Windows)

您可以通过内联网网站上的链接启动 Prism。

首先,在您的 Web 服务器上创建一个批处理文件,该文件使用 Call 命令调用程序及相应的配置文件。

例如,创建一个名为 StartPrism.bat 的文件,其中包含类似以下内容的单行代码

Call “N:\Program Files\PRISM5\PRISM.EXE” -OC:\WINDOWS\prism5.cnf

或者这样:

Call F:\Prism\Prism.exe @"F:\PRISM\PRISMSCRIPTS\DOIT.PZC"

当然,您需要根据 Prism 的安装路径调整本示例。驱动器字母是服务器驱动器的别名。在第一个示例中,第一部分启动 Prism,第二部分告诉 Prism 在何处查找配置文件。在第二个示例中,第二部分启动一个 Prism 脚本。

接下来,编辑您的网页以添加指向该批处理文件的超链接。例如,将文本“Prism”通过 HTML 链接指向文件 StartPrism.bat