在LabVIEW中编程运行可执行程序
以下文字来自于
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中编程运行可执行程序的更多相关文章
- 2.1 sikuli 中编程运行
1.用sikuli编程时,多用wait()语句,因为很多时候没有给它一定的识别时间,就容易出错. 比如下图,保证页面加载时间 1.Sikuli中 ,可以加# 进行注释 但是注释有的时候也会不起作用,比 ...
- 2.2 sikuli中编程运行
http://www.cnblogs.com/Flint/p/4951703.html a.如果需要指定点击的具体坐标,需要使用click(patten.targetoffset(x, y)). b. ...
- Labview 中的类
一.创建一个空的类 在 LabVIEW 工程窗口里,鼠标右键菜单的新建栏中有一项,是创建类.类的结构和 LabVIEW 工程库是比较相近的:类的名字也作为名字空间:也可以为类中的 VI 设置访问权限等 ...
- Labview中引用,属性节点,局部变量之间的区别
Labview中引用,属性节点,局部变量之间的区别 在Labview中我们经常会碰到这样几个概念,那就是控件的引用,属性节点以及局部变量,他们之间到底有哪些区别呢? 首先谈 ...
- AF(操作者框架)系列(1)-LabVIEW中的模块化应用概述
一.引子 在前面对LabVIEW介绍的文章中,关于框架开发的内容涉及很少.为了讲解操作者框架(Actor Framework)的优缺点,也只是拿出来QDSM(Queue-Driven State Ma ...
- Lotus Notes中编程发送邮件(二)
在编程发送各种类似通知的邮件时,时常会需要发件人显示为某个特定的帐户,比如某个部门的名称或者管理员的名字.另一种需求是,用户收到某封邮件后,回复邮件的地址不同于发件人栏显示的地址.而正常情况下,发送邮 ...
- Ruby中区分运行来源的方法(转)
Ruby中区分运行来源的方法 这篇文章主要介绍了Ruby中区分运行来源的方法,本文讲解的是类似Python中的if name == 'main':效果,其实Ruby中也有类似语法,需要的朋友可以参考下 ...
- 脱离matlab运行可执行程序的步骤
MCR是由matlab的运行环境,占用不到600M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包.MCR环境的设置文件存放目录如 ...
- 【LabVIEW技巧】LabVIEW中的错误2
前言 通过上一个文章的介绍,我们发现LabVIEW自带的错误管理依旧比较基础,如果需要对错误进行很好的管理,则需要进一步的进行程序编写. 用于在程序设计的过程中,为了保证程序的健壮性,我们需要 1.忽 ...
- 【LabVIEW技巧】LabVIEW中的错误1
前言 前几日,小黑充电学习意外的看到了下面的这个东东. 编程许久竟然没有见过这样子的错误枚举,甚为好奇,问刘大后才知道是Error Ring,为此恶补一下LabVIEW中与错误处理相关的内容. 错误的 ...
随机推荐
- Linux使用wget命令下载网络资源
之前接触的Linux环境大多是内网,一般都是采用传统的FTP服务器统一存放常用资源,有人需要时从FTP直接下载,若公司FTP没有想要的资源,还需联系管理维护人员下载上传对应的介质. 而目前随着云ECS ...
- Go语言核心36讲(Go语言实战与应用十)--学习笔记
32 | context.Context类型 我们在上篇文章中讲到了sync.WaitGroup类型:一个可以帮我们实现一对多 goroutine 协作流程的同步工具. 在使用WaitGroup值的时 ...
- ABC 309
直接从 F 开. F 三维偏序. 把盒子按 \(h_i\) 排序,离散化,正常跑三维偏序(注意不能相等). 还要处理 \(h_i\) 相等的情况,可以再把 \(h_i\) 从大到小排序,然后 \(w_ ...
- 【Unity3D】2D动画
1 图片处理 通过 PS 软件将以下 gif 文件中的黑色背景删除,并将其中的 18 个图层分别保存为 png 格式图片. 2 游戏对象 1)游戏对象层级结构 2)Transform组件参 ...
- 如何获取oracle dbid
1.查询v$database获得 由于DBID在控制文件和数据文件中都存在记录,所以如果能够mount数据库就可以查询v$database视图获得. SQL> alter database m ...
- oracle exp/imp命令使用parfile实现参数文件调用
优先使用数据泵(expdp/impdp)方式,更高效,问题少. 关于exp/imp工具的使用请参考我的另一篇文章: https://blog.csdn.net/IndexMan/article/det ...
- spring boot与junit集成测试
先创建一个REST接口 package com.laoxu.gamedog.controller; import org.springframework.web.bind.annotation.Req ...
- 用Taro写一个微信小程序——Taro3路由传参
参考https://docs.taro.zone/docs/router 1.传入参数 Taro.navigateTo({ url: '/pages/page/path/name?id=2&t ...
- 【小记事】如何设置vscode代码格式化时不要自动换行
最近一格式化就给我分好多行,好气哦(`ヘ´)=3 在setting.json中添加如下代码: "vetur.format.defaultFormatter.html": " ...
- go语言range语句中的值的坑
在range语句中生成的数据的值是真实集合元素的副本,它们不是原有元素的引用.这意味着更新这些值将不会 修改原来的数据,同时也意味着使用这些值的地址将不会得到原有数据的指针. package main ...