迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

C++ 中的 shellExecute() 函数

作者:迹忆客 最近更新:2023/08/24 浏览次数:

这个小型编程教程将讨论 C++ 中的 ShellExecute() 库函数。 该库函数主要用于通过C++程序打开或执行任何文件(例如脚本文件)。


C++ 中的 ShellExecute() 函数

ShellExecute()是C++标准库中提供的库函数,用于从C++程序中打开或运行任何可执行文件。 您无需关心打开所需文件的程序; 您只需给出需要打开的文件的路径或名称。

它类似于用鼠标单击图标的 Windows 操作,然后将其打开。 这用于使用 C++ 编程自动执行此操作。

ShellExecute() 如此受欢迎的主要原因之一是几乎任何东西都可以使用此 API 调用来运行。

如果提供的文件不可执行,ShellExecute API 将在注册表中搜索适当的程序来启动给定文件。 例如,如果您提供扩展名为 .txt 的文件名,它可能会启动记事本并加载该文件。

该函数的签名是:

HINSTANCE ShellExecute(
    HWND hwnd,
    LPCTSTR lpOperation,
    LPCTSTR lpFile,
    LPCTSTR lpParameters,
    LPCTSTR lpDirectory,
    INT nShowCmd);

我们看一下参数的详细信息:

  • hwnd:保存对父窗口的引用的句柄
  • lpOperation:它是需要对文件执行的操作的名称。 以下是可以使用的操作列表:
    • open 或 NULL - 函数打开 lpFile 文件。 该文件可以是文档文件或可执行文件。 我们还可以指定要打开的文件夹名称。
    • print - 如果 lpFile 指定的文件是文档文件,则该函数将其发送到打印机进行打印。
    • explore - 如果 lpFile 指定的文件是文件夹的名称,则该函数将探索该文件夹。
  • lpFile:这是文件、文件夹或可执行文件的名称。
  • lpParameters:这用于提供任何附加的命令行参数。
  • lpDirectory:用于指定默认目录的路径。
    • nShowCmd 它告诉如何打开函数中指定的文件。 它的值可以是以下任意值:
    • SW_HIDE - 隐藏当前应用程序窗口后显示新的应用程序窗口。
    • W_MAXIMIZE - 以最大化形式显示指定窗口。
    • SW_MINIMIZE - 以最小化形式显示指定窗口并显示下一级窗口。
    • SW_SHOW - 它以默认大小和位置激活指定窗口
    • SW_SHOWMAXIMIZED - 它首先激活窗口并以最大化形式显示它。
    • SW_SHOWMINIMIZED - 它首先激活窗口并以最小化形式显示它。
    • SW_SHOWNORMAL - 启用并显示窗口。 如果窗口最小化或最大化,Windows 会将窗口返回到其原始大小和位置。 当第一次显示窗口时,应用程序必须提供此标志。
    • 如果 lpFile 是指定的文档文件,则 nShowCmd 值应设置为 0。

成功时,ShellExecute() 返回一个大于 31 的值; 否则,其返回值可以是:

  • 0:如果操作系统不提供内存或资源。
  • ERROR_FILE_NOT_FOUND – 在该位置找不到指定的文件。
  • ERROR_PATH_NOT_FOUND – 指定的路径错误或未找到。
  • ERROR_BAD_FORMAT – 提供了无效的 .exe 文件。

还可能有许多其他错误代码,但我们已经讨论了一些常见错误。

让我们看一下 ShellExecute() 函数的编码示例:

#include <bits/stdc++.h>
#include <windows.h>
using namespace std;

int main()
{
    ShellExecute(NULL, "open", "MyTextFile.txt", NULL, NULL, SW_SHOWMAXIMIZED);
    return 0;
}

代码运行后,MyTextFile 将在记事本程序中打开。 同样,我们也可以提供一个将在浏览器中打开的 URL,如下所示:

#include <bits/stdc++.h>
#include <windows.h>
using namespace std;

int main()
{
    char webUrl[100] = "www.google.com";
    ShellExecute(NULL, "open", webUrl, NULL, NULL, SW_SHOWNORMAL);
    return 0;
}

使用ShellExecute()函数有很多优点和缺点,它们是:


使用 ShellExecute() 函数的优点

此 API 调用可以使用标准 Windows 设置打开、打印或浏览文件或文件夹。 您也可以更改这些默认值。

并非所有参数都必须填写; 其中一些可以为 NULL(即,易于使用)。


使用 ShellExecute() 函数的缺点

16 位软件无法通过 ShellExecute 运行。 复杂性与 WinExec 相当。

它无法指示生成的程序何时完成。

上一篇:C++ 中默认参数的重新定义

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

C++ 中默认参数的重新定义

发布时间:2023/08/24 浏览次数:170 分类:C++

在本文中,您将学习如何处理 C++ 中默认参数错误的重新定义。 C++ 中的默认参数必须在方法或函数的声明或定义中指定,但不能同时指定,因为存在重复。

C++ 形式参数的重新定义

发布时间:2023/08/24 浏览次数:132 分类:C++

在本文中,我们将讨论 C++ 中形式参数的重新定义问题。首先,我们将讨论函数定义和形式参数。 接下来,我们将讨论形式参数的重新定义问题。

C++ 工厂方法

发布时间:2023/08/24 浏览次数:78 分类:C++

工厂方法是 C++ 中的一种对象创建设计模式,用于创建对象同时隐藏其组合,以便用户可以使用接口而无需看到任何方法调用。C++ 中的工厂方法 工厂是虚拟构造函数,允许程序员设计让用户与

C++ 调用父方法

发布时间:2023/08/24 浏览次数:132 分类:C++

本文将简要讨论如何在 C++ 中从派生类函数调用父类函数。在C++中调用父类函数 在C++中调用函数就是将控制权转移给函数。

C++ 中的逆矩阵

发布时间:2023/08/24 浏览次数:96 分类:C++

本文将解释矩阵求逆及其使用 C++ 的实现。 为了方便理解C++的实现,我们首先需要理解矩阵逆的概念。矩阵的逆 求矩阵的逆矩阵需要三个步骤。

用 C++ 读取 PPM 文件

发布时间:2023/08/24 浏览次数:108 分类:C++

在本文中,我们将了解 PPM 文件并使用 C++ 读取它们。我们将首先讨论并了解 PPM 文件格式。 稍后,我们将学习用 C++ 读取 PPM 文件的分步过程。

检查 Linux 中的 C++ 编译器版本

发布时间:2023/08/24 浏览次数:60 分类:C++

本文是关于检查 Linux 操作系统上安装的 C++ 编译器的版本。 此外,在撰写本文时,我们还将探讨 C++ 最新版本 C++ 11 的激活过程。检查 Linux 中的 C++ 编译器版本

C++ 中结构体和类的区别

发布时间:2023/08/23 浏览次数:52 分类:C++

本文解释了 C++ 中结构体和类之间的区别。 本文是针对最新版本的 C++ 编写的; 旧版本中的结构和类之间存在更多限制和差异。在大多数情况下,结构与类非常相似,但差异很少。 让我们一一

C++ 中的类模板继承

发布时间:2023/08/23 浏览次数:142 分类:C++

本文将讨论 C++ 中最流行和最常用的方法之一(即类模板)。C++ 中模板的添加带来了一种新的编码范式,称为通用编程。 现在,这是 C++ 程序员工具包的一个重要元素,是许多标准库的基础,也

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便