迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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 相当。

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

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

本文地址:

相关文章

Arduino 中停止循环

发布时间:2024/03/13 浏览次数:444 分类:C++

可以使用 exit(0),无限循环和 Sleep_n0m1 库在 Arduino 中停止循环。

Arduino 复位

发布时间:2024/03/13 浏览次数:315 分类:C++

可以通过使用复位按钮,Softwarereset 库和 Adafruit SleepyDog 库来复位 Arduino。

Arduino 的字符转换为整型

发布时间:2024/03/13 浏览次数:181 分类:C++

可以使用简单的方法 toInt()函数和 Serial.parseInt()函数将 char 转换为 int。

Arduino 串口打印多个变量

发布时间:2024/03/13 浏览次数:381 分类:C++

可以使用 Serial.print()和 Serial.println()函数在串口监视器上显示变量值。

Arduino if 语句

发布时间:2024/03/13 浏览次数:123 分类:C++

可以使用 if 语句检查 Arduino 中的不同条件。

Arduino ICSP

发布时间:2024/03/13 浏览次数:214 分类:C++

ICSP 引脚用于两个 Arduino 之间的通信以及对 Arduino 引导加载程序进行编程。

使用 C++ 编程 Arduino

发布时间:2024/03/13 浏览次数:127 分类:C++

本教程将讨论使用 Arduino IDE 在 C++ 中对 Arduino 进行编程。

Arduino 中的子程序

发布时间:2024/03/13 浏览次数:168 分类:C++

可以通过在 Arduino 中声明函数来处理子程序。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便