C++ 中的 shellExecute() 函数
这个小型编程教程将讨论 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 相当。
它无法指示生成的程序何时完成。
相关文章
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()函数在串口监视器上显示变量值。