VC 调用外部程序接口

2024-02-15 04:08
文章标签 调用 外部 vc 程序接口

本文主要是介绍VC 调用外部程序接口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(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文件


这篇关于VC 调用外部程序接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/710401

相关文章

Java调用DeepSeek API的8个高频坑与解决方法

《Java调用DeepSeekAPI的8个高频坑与解决方法》现在大模型开发特别火,DeepSeek因为中文理解好、反应快、还便宜,不少Java开发者都用它,本文整理了最常踩的8个坑,希望对... 目录引言一、坑 1:Token 过期未处理,鉴权异常引发服务中断问题本质典型错误代码解决方案:实现 Token

在C#中调用Windows防火墙界面的常见方式

《在C#中调用Windows防火墙界面的常见方式》在C#中调用Windows防火墙界面(基础设置或高级安全设置),可以使用进程启动(Process.Start)或Win32API来实现,所以本文给大家... 目录引言1. 直接启动防火墙界面(1) 打开基本防火墙设置(firewall.cpl)(2) 打开高

python调用dubbo接口的实现步骤

《python调用dubbo接口的实现步骤》本文主要介绍了python调用dubbo接口的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录 ​​其他实现方式与注意事项​​ ​​高级技巧与集成​​用 python 提供 Dubbo 接口

C# FTP调用的实现示例

《C#FTP调用的实现示例》本文介绍了.NET平台实现FTP/SFTP操作的多种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 .NET 自带 FtpWebRequest 实现 FTP 操作1.1 文件上传1.2

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

使用Go调用第三方API的方法详解

《使用Go调用第三方API的方法详解》在现代应用开发中,调用第三方API是非常常见的场景,比如获取天气预报、翻译文本、发送短信等,Go作为一门高效并发的编程语言,拥有强大的标准库和丰富的第三方库,可以... 目录引言一、准备工作二、案例1:调用天气查询 API1. 注册并获取 API Key2. 代码实现3

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

Python如何调用另一个类的方法和属性

《Python如何调用另一个类的方法和属性》在Python面向对象编程中,类与类之间的交互是非常常见的场景,本文将详细介绍在Python中一个类如何调用另一个类的方法和属性,大家可以根据需要进行选择... 目录一、前言二、基本调用方式通过实例化调用通过类继承调用三、高级调用方式通过组合方式调用通过类方法/静

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四