此为转帖,未验证,望有兴趣的朋友验证后予以回复。
想到之前的一个问题,手头有许多波形文件,文本格式的
希望使用自己编写的"WavRep.exe"来打开这些波形文件并回放显示,并做其它处理
通常做法是在程序前面板上放置一个路径输入控件,程序运行后让用户输入波形文件路径
但是,如何像其它windows程序那样,双击这个波形文件,自动使用程序打开,而不需要输入路径?
当时我的第一想法是,修改波形文件的后缀名,例如 *.TxxWav
然后指定这种文件的打开方式为: WavRep.exe
中间遇到两个主要的问题:
1 右键 *.TxxWav文件,选择打开方式时,无法将WavRep.exe添加到打开方式列表中,--即无法使用WavRep.exe打开
2 然后就像直接使用拖放方式打开,会报错提示"....*.TxxWav不是合法labview文件."
解决方法:
1 可以被添加进打开方式列表中的软件都事先在注册表中添加过信息的
HKEY_CLASSES_ROOTApplications 这个路径下可以看到其它常用软件的注册信息
自己的软件也需要在此注册,例如如下.reg文件可以让 D:TxxWav.exe能够被添加进打开方式
[HKEY_CLASSES_ROOTApplicationsTxxWavshellopencommand]
@=""D:\TxxWav" "%1""
如果LabVIEW程序是安装版本,可以在工程写入注册表信息中写入相关信息
如果是发布免安装版,或者是自己使用,可以自己手工写一个 .reg文件,写法同上
有一些需要注意的问题:
a) 可执行程序的路径不支持中文,所以目录什么的全部英文
b) .reg中的@="D:\TxxWav",手工写reg文件,注意加转义符, " 和 前面需要转义,真实路径为 "D:TxxWav"
c) "D:TxxWav"两端的引号可以不写,即 D:TxxWav,那reg文件中可以如此写-->>@="D:\TxxWav "%1""
2 注册文件类型
为自己定义的 *.TxxWav文件注册
打开任意文件夹--工具--文件夹选项--文件类型,
添加自定义文件类型
3 合法LabVIEW文件问题
主要是命令行参数的问题,常规在前面板上添加路径输入控件,
相当于将文件路径赋值给程序中的一个路径变量
但是直接这样打开,相当于int main(argc,argv**)中的命令行参数
如果是文本编程,可以赋值:-->> PathStr=argv[1];
然后使用PathStr打开文件,获取句柄,进行各类操作
如果使用LabVIEW编程
可以使用打开应用程序引用-->调用节点-->>选择获取命令行参数,-->>索引第二个便是文件路径
最后在生成的工程中,属性-高级-传递所有命令行参数至程序,这个要勾选
至此,目标达成
---------------------------------------------------------------------------------------------------------------->>
打开成功后,可以在表报中添加波形记录的超链接
由于波形记录的打开方式默认是我们自己写的WavRep
点击后,自动由WavRep打开,达成各种特定的表现方式
这也是我做这个的初衷了 @ @
|