CIV 如何在自己的程序中调用外部程序
2017-01-04 17:42
399 查看
缘由:因为一些原因要调用其他公司的应用程序,到处找相关资料,到一个论坛上找到了,最后坛主给了我一个写好的应用程序,很想吐槽,我要他干嘛,我要的是源码,源码啊!!,最后还是自己在NI官网上找到了答案,并不复杂很简单。官网相关问题的地址:http://digital.ni.com/public.nsf/allkb/5BB6381FC21C01C78625750D003F8BE9
界面:
我对官网上给的实例进行了更改添加:添加了打开系统应用程序,和打开一个固定网页。
不想多说直接贴代码:
#include "windows.h" #include <ansi_c.h> #include <utility.h> #include <cvirte.h> #include <userint.h> #include "shellapi.h" #include "call EXE.h" static int panelHandle; static int exeHandle = 0; static int handle; int main (int argc, char *argv[]) { if (InitCVIRTE (0, argv, 0) == 0) return -1; /* out of memory */ if ((panelHandle = LoadPanel (0, "call EXE.uir", PANEL)) < 0) return -1; DisplayPanel (panelHandle); RunUserInterface (); DiscardPanel (panelHandle); return 0; } int CVICALLBACK QuitCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: QuitUserInterface (0); if(exeHandle >0) RetireExecutableHandle (exeHandle); break; } return 0; } int CVICALLBACK LaunchFull (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: LaunchExecutableEx ("test_dbg.exe /C full", LE_SHOWMINIMIZED, &exeHandle); //LaunchExecutableEx ("E:/Program Files (x86)/CMS/CMS.exe", LE_SHOWMINIMIZED, &exeHandle); //打开我电脑中真实的其他公司的应用程序 这里不作为案例,因为你电脑中不一定存在这个软件 break; } return 0; } int CVICALLBACK LaunchOriginal (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: LaunchExecutable ("test_dbg.exe"); //LaunchExecutable ("e:/Program Files (x86)/CMS/CMS.exe"); //打开我电脑中真实的其他公司的应用程序 这里不作为案例,因为你电脑中不一定存在这个软件 break; } return 0; } int CVICALLBACK OpenNote (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { HWND hwnd; switch (event) { case EVENT_COMMIT: GetPanelAttribute (panelHandle, ATTR_SYSTEM_WINDOW_HANDLE, &handle); ShellExecute((HWND)handle, "open","notepad.exe", NULL, NULL, SW_NORMAL); hwnd = FindWindow(NULL,"你好-记事本"); SetParent(hwnd, (HWND)handle); break; } return 0; } int CVICALLBACK OpenWeb (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: GetPanelAttribute (panelHandle, ATTR_SYSTEM_WINDOW_HANDLE, &handle); ShellExecute((HWND)handle, "open", "http://www.baidu.com", NULL, NULL, SW_NORMAL); break; } return 0; }其中关于shelapi.h,需要去官方库中引shell32.lib,我的电脑中地址是C:\Program Files (x86)\National Instruments\CVI2013中,自己收索shell32.lib就能找到实例下载地址:http://download.csdn.net/detail/cb_869145753_hp/9728914
相关文章推荐
- 如何在iPhone程序中调用外部命令
- [MySQL FAQ]系列 -- mysql如何调用系统外部程序
- 如何在自己的网页中调用外部的搜索引擎:google、百度web接口
- 如何检查外部调用程序的状态
- 如何在自己的程序里执行/终止一个外部程序?
- 如何在自己的系统中打开并关闭外部程序
- 如何为外部程序调用时,可传入参数?如何调试?
- erlang调用外部程序如何得到其退出状态
- wxWidgets中如何使用输入输出重定向调用外部程序
- Android NDK编程,我的第一个hello-jni程序,如何调用自己编译的so库
- 如何在自己的系统中打开并关闭外部程序
- 发现Windows程序 最主要的还是要理解消息和窗口的相互调用,相互影响是如何实现的,才能更准确的去理解Windows程序,去编好自己想要的程序功能
- 如何让Delphi调用外部程序并等待其运行信息(如结束)
- 如何在VC++中调用外部程序
- [转载]C#如何实现对外部程序的动态调用
- 如何检查外部调用程序的状态
- android 如何调用talk程序,集成到自己写的应用中
- Android在自己的程序中调用外部程序
- 如何让自己的程序调用其他的Activity?
- Linux也有自己的cls命令,clear。但在程序中如何调用昵?