【问题标题】:How to call an VB6.exe from foxpro 2.5 program如何从foxpro 2.5程序调用VB6.exe
【发布时间】:2011-09-09 14:52:51
【问题描述】:

我在 foxpro 2.5 中有一个程序,我有一个 .exe 文件,它是在 VB6.0 中开发的 我的 vfp 程序是一个基于 dos 的程序,我们在 windows xp 上工作,我们在 xp 中启动 dos 提示符,然后我们运行我们的 vfp 程序。 我的问题是当我用参数调用这个程序时,它终止并且没有返回结果。 我的参数长度超过 110 个字符

那么我如何在 foxpro 中调用带有参数 where 的 .exe 文件 参数为字符串,长度大于110个字符

似乎是内存问题,有人告诉我如何管理它 谢谢

【问题讨论】:

  • 将调用写入文件并从 foxpro 打开文件?
  • 你知道参数长度是问题吗?
  • 可能是参数长度有问题,但是我怎么能用我现有的参数调用那个程序
  • 尊敬的 CodingBarfield 先生,我不明白你在说什么。
  • 在 FoxPro 之外直接运行命令是否有效?

标签: vb6 exe foxpro


【解决方案1】:

您没有说明如何从 FoxPro 调用 VB6 程序,但 RUN 命令应该可以工作。以下内容来自 Visual FoxPro 7,但应适用于 FoxPro 2.5。

执行外部操作命令或程序。

RUN [/N] MS-DOS 命令 |程序名称 -或者-

! [/N] MS-DOS 命令 | ProgramName 参数 MS-DOSCommand 指定 要执行的 MS-DOS 命令。有关更多信息,请参阅您的 MS-DOS 文档 有关可用 MS-DOS 命令的信息。程序名指定 要运行的程序或应用程序。您可以指定基于 Windows 或 基于 MS-DOS 的程序或应用程序。 /N 指定现在。包括 字母 N 执行另一个基于 Windows 的应用程序。评论 您可以从命令窗口或从 程序。

注意要使用 RUN,您必须具有操作系统文件 Command.com 在当前目录中,或者它必须位于 MS-DOS 所在的位置 COMSPEC 参数可以找到它。有关 COMSPEC 的更多信息,请参阅 您的 MS-DOS 文档。注意 不要使用 RUN 运行磁盘 Visual FoxPro 中的重组程序,例如 CHKDSK。 这些程序以一种可能会修改磁盘内容的方式 阻止 Visual FoxPro 正常运行。 RUN 和 Visual FoxPro
当 RUN 用于运行 Visual FoxPro 之外的程序时,它会搜索 用于与 FoxPro for MS-DOS 略有不同的程序。

如果您在 RUN 中指定的程序没有扩展名,Visual FoxPro 首先沿 MS-DOS 路径查找程序信息文件 (PIF) 与您指定的名称。 PIF 允许您运行非 Windows Windows下的程序。您可以为程序指定参数, 无论程序是在窗口中运行还是全屏运行, 为程序分配的内存量,等等。

如果找到 PIF,则执行 PIF 中指定的程序 PIF 参数。如果未找到 PIF,则 MS-DOS 路径为 搜索具有您指定名称的可执行文件。

找不到 PIF 时,Visual FoxPro 使用 FOXRUN.PIF,即安装的 PIF 在 Visual FoxPro 目录中。 FOXRUN.PIF 配置为运行 窗口中的程序。您可以修改 FOXRUN.PIF 以在 另一种配置。

Windows 2000 徽标认证 如果您打算提交您的 申请认证,请勿使用 RUN 命令, 因为它可能会违反以下系统组策略 要求。

"只允许运行 Windows 应用程序 - 您的应用程序不得 启动不在此列表中的任何应用程序。注意这不 通过 COM 启动应用程序时应用。如果你使用 ShellExecuteEx,Windows 2000 将自动执行此检查。” 相反,您应该使用带有 ShellExecuteEx.API 的 DECLARE DLL。

FOXRUN.PIF Foxrun.pif 允许您执行 MS-DOS® 和 Windows® Visual FoxPro 中的程序和命令。 Foxrun.pif 必须在 与 Visual FoxPro 中的 Vfp7.exe 相同的目录。

/N 表示现在。包含字母 N 以执行另一个基于 Windows 的 应用。例如,以下语句打开 Windows 字符图附件:

! /N CHARMAP.EXE 以下示例打开 Windows 颜色选择器 从 Windows 控制面板:

! /N CONTROL COLOR 使用 RUN /N 执行的基于 Windows 的应用程序或 ! /N 的行为与您打开应用程序时的行为相同 通过 Windows 资源管理器或从“开始”菜单中选择“运行”。 您可以在应用程序和 Visual FoxPro 或 FoxPro 之间切换 Windows 使用标准的 Windows 操作。

您可以在 /N 之后立即包含一个可选数值 指定如何打开基于 Windows 的应用程序。不包括 /N 和数值之间的任何空格。下表列出 您可以包含的数值并描述 打开时基于 Windows 的应用程序。

值应用程序属性 1 活动和正常大小 2 活动和 最小化 3 活动和最大化 4 非活动和正常大小 7 非活动和最小化

在 Visual FoxPro 中运行 MS-DOS 程序 默认情况下,Foxrun.pif 运行 窗口中指定的外部 MS-DOS 程序。虽然 MS-DOS 程序或命令正在运行,窗口标题为 FoxPro Run 命令。在 Visual FoxPro 中,FoxPro 运行命令窗口已关闭 外部程序或命令执行完毕后。

您可以使用 Windows PIF 编辑器自定义 Foxrun.pif。你可以 编辑 PIF 以指定非活动 FoxPro 运行命令窗口是否为 使用关闭保持打开或关闭(Visual FoxPro 中的默认设置) 退出时的窗口复选框。您还可以在 通过选择全屏全屏;为程序分配内存; 等等。

内存注意事项 默认情况下,Foxrun.pif 至少分配 256K 内存用于运行外部命令或程序。如果你这样做 没有 256K 的可用常规内存,Visual FoxPro 显示 错误信息。要更正此问题,请尝试以下一项或两项操作:

关闭应用程序和文件以释放更多内存。编辑 Foxrun.pif 减少所需 KB 所需的内存量 文本框。如果外部命令需要超过 256K,MS-DOS FoxPro 运行命令窗口中显示错误消息。纠正 这个,编辑你的 Foxrun.pif 以增加所需的内存量 在所需知识库文本框中。

【讨论】:

  • 非常感谢戴夫先生,这篇文章对我很有帮助
  • 似乎是内存不足的问题告诉我如何增加内存来运行我们在 Windows XP 上工作的外部 exe 程序。我们的foxpro程序是基于dos的我们在windows xp中启动ms dos然后我们启动我们的vfp程序并在vfp中外部exe调用
猜你喜欢
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
相关资源
最近更新 更多