NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

labview中能不能把一个Windows窗口嵌入到VI的前面板中?

  用LABVIEW调用了一个.exe的程序,这个程序有自己的运行界面,怎么能实现把这个程序的串口嵌入到我的LABVIEW程序的前面板中呢?
0 项奖励
1 条消息(共 6 条)
5,075 次查看

可以通过调用Windows的API来实现。附件是一个例子。 该例子将Widnows Task Manger作为子窗口放到一个VI里。 完成以下步骤:

(1)打开系统的任务管理器。

(2)打开例子中的Simple MDI Demo VI。如果是英文操作系统,直接运行就能看到效果。如果是中文,确认一下任务管理器的Window Title是不是不一样。不一样的话,在Simple MDI Demo VI里替换掉Widnows Task Manger. 注意任务管理器的位置放在屏幕的左上角去比较好。 否则运行后可能会看不到。

(3)在Simple MDI Demo VI里用你的EXE的Window Tite替换掉Widnows Task Manger就可实现将EXE放到VI里。

2 条消息(共 6 条)
5,055 次查看

您好

很谢谢您的解答,让我看到了希望:)不过您的例子我运行了一下,没有错误,但是好像没有什么反应,任务管理器窗口没有嵌入到VI里啊?是需要什么特殊的条件么?还有怎么才能让窗口嵌入到制定的区域内呢?

0 项奖励
3 条消息(共 6 条)
5,019 次查看
检查一下你的任务管理器的title是什么,要在程序里相应修改。 原理是根据window title得到窗口的句柄。还有就是把任务管理器拖到左上角去,否则你的VI如果太小就看不见了。
 
任务管理器窗口放到VI里后,他的位置相对零点变为 VI的左上。 比如,如果你希望将EXE放在相对于VI左上角(100,100)的地方,放进去之前你的EXE的位置应该在相对于屏幕左上角的(100,100). EXE相对于屏幕左上角的位置的设置应该也可以调用系统函数来设置的。
 
虽然理论上是可以做到的,但最好不要用这么搞的编程,后果不可预料。。。 要么全用LabVIEW,要么不用。 😉
 
 
0 项奖励
4 条消息(共 6 条)
5,012 次查看

我测试了一下 

1)任务管理 已经放在左上角

2)框图里面也更改了

 

××

不过还是无法实现这个功能

 

×××

环境如下

 

WIN10 专业版

 

LV2019 (32 和64都测试过了)

 

××

可以看到四位数句柄

0 项奖励
5 条消息(共 6 条)
1,822 次查看

参考:

https://education.ni.com/center-of-excellence/resources/1184/ui-leveraging-the-windows-api-to-extend...

 

任务管理器是比较特别的, 另选一个, 例如 Notepad, 做测试.

 

George Zou
0 项奖励
6 条消息(共 6 条)
1,817 次查看