ShellExecute详细用法
ShellExecute是一个Windows API函数,用于打开外部应用程序、打开URL链接或者执行系统命令。
ShellExecute的函数原型如下:
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
参数说明:
- hwnd:指定父窗口的句柄,如果不需要指定父窗口,可以传入NULL。
- lpOperation:指定操作类型,可以是"open"、“print”、"explore"等等。如果不需要指定操作类型,可以传入NULL。
- lpFile:指定要打开的文件名、URL链接或者系统命令。
- lpParameters:指定要传递给打开文件的参数,如命令行参数。如果没有参数,可以传入NULL。
- lpDirectory:指定要打开文件的目录。如果不需要指定目录,可以传入NULL。
- nShowCmd:指定打开文件时的显示方式,如最大化、最小化等。常见取值有SW_SHOW、SW_HIDE等。
返回值:
- 如果函数执行成功,返回大于32的HINSTANCE句柄。如果函数执行失败,返回值取决于错误的原因。
使用ShellExecute打开外部应用程序的示例代码:
#include <Windows.h>
#include <ShellAPI.h>
int main() {
ShellExecute(NULL, _T("open"), _T("C:\\Windows\\notepad.exe"), NULL, NULL, SW_SHOW);
return 0;
}
使用ShellExecute打开URL链接的示例代码:
#include <Windows.h>
#include <ShellAPI.h>
int main() {
ShellExecute(NULL, _T("open"), _T("http://www.example.com"), NULL, NULL, SW_SHOW);
return 0;
}
使用ShellExecute执行系统命令的示例代码:
#include <Windows.h>
#include <ShellAPI.h>
int main() {
ShellExecute(NULL, _T("open"), _T("cmd.exe"), _T("/c echo Hello World"), NULL, SW_SHOW);
return 0;
}
需要注意的是,ShellExecute函数是一个异步操作的函数,函数调用会立即返回而不等待应用程序执行完毕。如果需要等待应用程序执行完毕再进行其他操作,可以使用ShellExecuteEx函数。
相关问答