(1) system()
函数名: system
功 能: 发出一个DOS命令
用 法: int system(char *command);
备 注: system函数已经被收录在标准c库中,可以直接调用
返回值
=-1:出现错误
=0:调用成功但是没有出现子进程
>0:成功退出的子进程的id
样例:
system("D:\\game.exe");
system("mmc.exe \"c:\\windows\\system32\\gpedit.msc\"");
(2) WinExec()
函数原型:
UINT WINAPI WinExec(
__in LPCSTR lpCmdLine,
__in UINT uCmdShow);
参数说明:
lpCmdLine, // 命令路径
uCmdShow, // 显示方式,共有11种,具体可以查阅MSDN的ShowWindow函数
返回值:
成功,返回值大于31
返回0表示内存或者资源溢出
返回ERROR_BAD_FORMAT表示exe文件非法或者已损坏。
返回ERROR_FILE_NOT_FOUND指定的文件没有找到。
返回ERROR_PATH_NOT_FOUND找不到指定路径
样例:
WinExec("Notepad.exe", SW_SHOW); // 打开记事本
WinExec("D:\\Program Files\\Test\\Test.exe",SW_SHOWMAXIMIZED); // 以最大化的方式打开Test.exe(注意文件名的大小写也必须完全一样)
(3) ShellExecute()
函数原型:
HINSTANCE ShellExecute(
HWND hwnd, //父窗口句柄
LPCTSTR lpOperation, //操作, 打开方式"edit","explore","open","find","print","NULL"
LPCTSTR lpFile, //文件名,前面可加路径
LPCTSTR lpParameters, //参数
LPCTSTR lpDirectory, //默认文件夹
INT nShowCmd //显示方式
);
用例:
ShellExecute(NULL,"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL); // 打开C:\Test.txt 文件
(4) CreateProcess()
函数原型:
BOOL CreateProcess(
LPCTSTR lpApplicationName, //执行程序名
LPTSTR lpCommandLine, // 参数行
//下面两个参数描述了所创建的进程和线程的安全属性,如果为NULL则使用默认的安全属性
LPSECURITY_ATTRIBUTES lpProcessAttributes, //进程安全属性
LPSECURITY_ATTRIBUTES lpThreadAttributes, // 线程安全属性
BOOL bInheritHandles, // 继承标志
DWORD dwCreationFlags, // 创建标志
LPVOID lpEnvironment, // 环境变量
LPCTSTR lpCurrentDirectory, // 运行该进程的初始目录
LPSTARTUPINFO lpStartupInfo, // 用于在创建子进程时设置各种属性
LPPROCESS_INFORMATION lpProcessInformation //用于在进程创建后接受相关信息
);
评论:
system(),主要用在DOS环境下.
WinExec(),简单实用,方便打开执行进程,但不能操作控制进程。
ShellExecute(),增强了操作能力,但对进程的控制还是不够用。
CreateProcess(),目前最强劲的进程函数,通过设置StartupInfo结构体参数,来设置子进程的属性,子进程创建后的信息也保存在ProcessInformation结构体中,便于操作,功能强大,但参数过多.
参考推荐:
VC 调用外部程序接口
VC调用系统运行程序
VC中调用外部程序方式总结
VC打开系统msc、cpl文件
分享到:
相关推荐
本文将深入探讨如何在ActiveX控件中动态调用外部的DLL(动态链接库)函数,这对于扩展ActiveX功能或者实现特定任务非常有用。 首先,我们需要理解DLL的本质。DLL是一种共享库,它包含可由多个程序同时使用的代码和...
MATLAB通过实现COM服务器,使得VC等外部程序能够创建和控制MATLAB对象,执行MATLAB代码,读写MATLAB变量,以及调用MATLAB函数。 在VC中调用MATLAB COM接口的步骤大致如下: 1. **导入MATLAB类型库**:在VC项目中,...
总结来说,通过C#编写DLL并使用VC调用,我们可以实现C++与.NET框架的交互。这种技术在需要结合C++的高性能和C#的高级功能时非常有用。不过,需要注意的是,跨语言调用可能会引入一些兼容性问题,因此在实际应用中...
在VC++中,我们可以直接调用这个API来执行外部程序。 ```cpp STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); BOOL result = ...
总结来说,"VC资料(关于调用外部资源的)"涵盖的内容广泛,从基础的文件操作到复杂的系统API调用,再到与Office等应用程序的集成,都是VC开发中不可或缺的知识点。通过学习这些内容,开发者可以更好地掌握在VC环境...
2. **音量控制程序的调用**:`initVolume()`方法实现了对外部VC程序的调用。 - 获取当前路径:通过自定义的`mngPathTool`类获取当前路径。 - 执行VC程序:使用`Runtime.getRuntime().exec(command)`方法执行VC程序...
在IT领域,开发人员经常需要使用各种工具和插件来扩展程序的功能,"VC调用大漠插件"就是这样一个示例。Visual C++(简称VC)是Microsoft提供的一款强大的C++集成开发环境,而“大漠插件”则是一个在特定场景下,如...
### 使用VC调用Google天气预报接口 在本文中,我们将详细介绍如何使用Visual C++ (VC) 的 `CInternetSession` 类来访问Google提供的天气预报API并解析返回的XML数据流。这种方法同样适用于C#等其他.NET语言的移植。...
导出函数是DLL提供给外部调用的接口,通常使用`__declspec(dllexport)`关键字标记。例如: ```cpp extern "C" __declspec(dllexport) int Add(int a, int b) { return a + b; } ``` 2. **头文件定义**:创建对应...
以上就是VC调用Flash的基本流程,实际应用中可能需要考虑更多的细节,比如错误处理、资源释放等。在项目中,你可能还需要处理Flash与VC之间的数据类型转换,以及异步调用的问题。记得在完成操作后释放所有使用的COM...
在本文中,我们将深入探讨...综上所述,通过VC编写程序检测USB接口中的外部设备插拔涉及理解USB设备原理、Windows API接口以及事件驱动编程。通过合理的代码组织和测试,我们可以创建出一个功能完善的USB设备监控工具。
1. **定义接口**:在DLL项目中,你需要定义一个头文件,其中包含将被外部应用程序调用的函数声明。这些函数的参数和返回类型需要明确,以便其他程序可以正确地调用它们。 2. **实现接口**:接着,你需要在DLL的...
总结来说,"Delphi 调用VC生成的DLL"涉及到不同编程环境间的接口调用,理解DLL的工作原理和不同编程语言之间的数据类型转换是关键。正确配置和调用DLL可以极大地增强应用程序的功能,同时保持代码的组织性和可维护性...
1. **extcode.h**:这个头文件包含了LabVIEW外部函数接口(External Function Interface, EFI)的定义。LabVIEW中的函数通过EFI暴露给其他编程语言,如C++。`extcode.h`定义了LabVIEW数据类型和函数原型,使VC程序...
`DllImport`特性告诉.NET框架该函数是从外部DLL导入的,`CallingConvention`指定调用约定,这里是C风格的`StdCall`。 5. **调用DLL函数**:现在,C#可以直接像调用本地方法一样调用VC++的函数: ```csharp int ...
在IT行业中,编程语言间的交互是常见的需求,例如在C++程序中调用其他外部工具或脚本。...记住,调用外部程序时要考虑到安全性,避免潜在的注入攻击,并确保正确处理资源释放,以保持程序的健壮性。
在探讨基于COM的VC调用Matlab的方法及实现之前,我们需要先了解Matlab与VC(Visual C++)在工程...在实现基于COM的VC调用Matlab时,还需注意Windows平台的兼容性和安全性问题,确保VC调用Matlab程序的稳定性和可靠性。
Excel作为Microsoft Office套装的一部分,提供了丰富的COM(Component Object Model)接口,使得外部程序可以通过这些接口操作Excel文档。COM是一种语言无关的二进制标准,它定义了组件如何进行通信,包括跨进程和跨...
首先,`vc调用matlab编译器生成dll示例1`标题表明这是一个关于如何在VC++(可能是版本6,即Vc6)中通过MATLAB Compiler创建DLL,并进行调用的实例教程。MATLAB Compiler允许我们将MATLAB脚本或函数转换为可与其他...
MATLAB引擎库是MATLAB提供的一种接口,允许外部应用程序(如VC程序)通过C/C++语言调用MATLAB函数。这种方式主要适用于需要在VC程序中嵌入MATLAB代码的情况。 **步骤如下:** 1. **初始化MATLAB引擎:** 在VC程序...