以下文字来自于

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000YGhVCAW&l=en-US

翻译来自于ChatGPT3.5

在LabVIEW中,您可以使用System Exec VI来编程调用可执行文件(*.exe)或应用程序。System Exec VI接受一个字符串输入,在Windows命令提示符中执行该字符串;要启动一个可执行文件,您可以将目录和文件名作为字符串输入到VI中。

本教程将向您展示如何使用System Exec VI从LabVIEW中启动应用程序。

- 按照《在LabVIEW中执行命令行参数》中的步骤设置和配置您的System Exec VI。如果您需要传递跟在文件名后面的参数,请复制命令,就像在命令提示符下调用时那样。
- 在命令行中输入可执行文件的完整文件路径。输入整个命令,就像您在DOS提示符下输入一样,包括所有参数。
    - 如果可执行文件目录存在于Windows的PATH环境变量中,您可以通过使用其文件名作为此字符串输入来运行可执行文件(例如,application_name.exe)。
    - 如果字符串包含空格,请使用""(引号)将字符串括起来。
- 将可执行文件的文件夹路径输入到工作目录中。

在下面的代码片段中,System Exec VI被用于从LabVIEW中运行Windows记事本程序。

注意:
- 当向System Exec VI发送参数时的另一种方法是使用批处理文件,按照以下步骤操作:
    - 创建一个filename.bat文件,该文件调用可执行文件,然后跟上所需的选项(例如filename.exe -option1 -option2)。
    - 然后,使用LabVIEW System Exec VI调用filename.bat文件。
- 如果您正在使用LabVIEW 32位,并尝试调用位于C:\Windows\System32文件夹中的可执行文件,您可能会看到该.exe文件无法打开。原因是您无法通过32位LabVIEW环境访问64位可执行文件。
    - 要运行这些.exe文件,请创建一个批处理文件,指定.exe的完整路径,并将System32替换为sysnative。这是一个特殊的文件夹,在Windows资源管理器中不可见,但它被用作文件系统重定向器,以从64位应用程序或脚本访问64位System32文件夹。
        - 以下是一个批处理文件的示例,调用ie4uinit.exe并传递参数-show:
            - C:\Windows\sysnative\ie4uinit.exe -show
    - 请参阅《[外部]解释Windows 64位中的Sysnative文件夹》,以更详细地了解sysnative文件夹。
- 如果您正在使用LabVIEW 64位,则无需将路径从C:\Windows\System32更改为C:\Windows\sysnative。
- 请参阅labview\examples\Connectivity\Libraries and Executables目录中的Command Line Execution VI,以查看如何使用System Exec VI的示例。
- 标准输入端口允许您将输入重定向到正在运行的程序。例如,如果您正在运行一个带有“暂停”语句的批处理文件,则可以通过标准输入端口输入一个行结束符来模拟在键盘上按“Enter”键。请注意,当等待完成输入为false时,标准输入将被忽略。

在LabVIEW中编程运行可执行程序的更多相关文章

  1. 2.1 sikuli 中编程运行

    1.用sikuli编程时,多用wait()语句,因为很多时候没有给它一定的识别时间,就容易出错. 比如下图,保证页面加载时间 1.Sikuli中 ,可以加# 进行注释 但是注释有的时候也会不起作用,比 ...

  2. 2.2 sikuli中编程运行

    http://www.cnblogs.com/Flint/p/4951703.html a.如果需要指定点击的具体坐标,需要使用click(patten.targetoffset(x, y)). b. ...

  3. Labview 中的类

    一.创建一个空的类 在 LabVIEW 工程窗口里,鼠标右键菜单的新建栏中有一项,是创建类.类的结构和 LabVIEW 工程库是比较相近的:类的名字也作为名字空间:也可以为类中的 VI 设置访问权限等 ...

  4. Labview中引用,属性节点,局部变量之间的区别

    Labview中引用,属性节点,局部变量之间的区别        在Labview中我们经常会碰到这样几个概念,那就是控件的引用,属性节点以及局部变量,他们之间到底有哪些区别呢?        首先谈 ...

  5. AF(操作者框架)系列(1)-LabVIEW中的模块化应用概述

    一.引子 在前面对LabVIEW介绍的文章中,关于框架开发的内容涉及很少.为了讲解操作者框架(Actor Framework)的优缺点,也只是拿出来QDSM(Queue-Driven State Ma ...

  6. Lotus Notes中编程发送邮件(二)

    在编程发送各种类似通知的邮件时,时常会需要发件人显示为某个特定的帐户,比如某个部门的名称或者管理员的名字.另一种需求是,用户收到某封邮件后,回复邮件的地址不同于发件人栏显示的地址.而正常情况下,发送邮 ...

  7. Ruby中区分运行来源的方法(转)

    Ruby中区分运行来源的方法 这篇文章主要介绍了Ruby中区分运行来源的方法,本文讲解的是类似Python中的if name == 'main':效果,其实Ruby中也有类似语法,需要的朋友可以参考下 ...

  8. 脱离matlab运行可执行程序的步骤

    MCR是由matlab的运行环境,占用不到600M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包.MCR环境的设置文件存放目录如 ...

  9. 【LabVIEW技巧】LabVIEW中的错误2

    前言 通过上一个文章的介绍,我们发现LabVIEW自带的错误管理依旧比较基础,如果需要对错误进行很好的管理,则需要进一步的进行程序编写. 用于在程序设计的过程中,为了保证程序的健壮性,我们需要 1.忽 ...

  10. 【LabVIEW技巧】LabVIEW中的错误1

    前言 前几日,小黑充电学习意外的看到了下面的这个东东. 编程许久竟然没有见过这样子的错误枚举,甚为好奇,问刘大后才知道是Error Ring,为此恶补一下LabVIEW中与错误处理相关的内容. 错误的 ...

随机推荐

  1. 21.2 静态TLS--《Windows核心编程》

    部分笔记来自于:https://blog.csdn.net/Steven_programe_life/article/details/103358251?utm_medium=distribute.p ...

  2. ES6学习 第六章 数值的扩展

    前言 本章介绍数值的扩展.新增了很多方法,有些不常用的方法了解即可. 本章原文链接:数值的扩展 进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. ...

  3. 【Unity3D】UGUI概述

    1 UGUI 与 GUI 区别 ​ GUI控件 在编译时不能可视化,并且界面不太美观,在实际应用中使用的较少.UGUI 在编译时可视化,界面美观,实际应用较广泛. 2 Canvas 渲染模式(Rend ...

  4. Swoole从入门到入土(15)——WebSocket服务器[初步接触]

    WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.换句话说,Websocket让web可以与服务端实现长连接. 在Swoole中,通过内置的 WebSock ...

  5. python利用random模块随机生成MAC地址和IP地址

      import random   def randomMac(): macstring = "0123456789abcdef"*12 macstringlist=random. ...

  6. c2工具sliver 执行木马命令后会弹窗一闪而过

    向木马发出指令后, 如果是cmd命令会有一个黑窗口一闪而灭, 不利于木马隐藏, 需要将executeHandler从handlers.go拷贝到handlers_windows.go里,核心代码为 c ...

  7. At-abc342

    AtCoder Beginner Contest 342 (已更新:C D) C 似曾相识的经典映射题--而只会map的蒟蒻成功又被卡住了 简单的用map映射无法处理如r->a,a->r这 ...

  8. 彻底搞懂Java中的Runnable和Thread

    写在前面 今天在阅读ThreadPoolExecutor源码的时候觉得有些地方理解起来似是而非,很别扭!最后才猛然发现,原来是我自己的问题:没有真正理解Runnable和Thread的含义! 我之前对 ...

  9. java怎么打印一个对象的内存地址

    在Java一般使用HashCode来代表对象的地址,但是两个相同的对象就不行了,两个相同的对象的hashcode是相同的. 如果要对比两个相同的对象的地址可以使用,System.identityHas ...

  10. 【C++ OOP 03 友元】各种友元例子以及如何类外写成员函数

    [友元] 在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术 友元的目的就是让一个函数或者类 访问另一个类中私有成员 友元的关键字为 friend 友元的三种实现 全 ...