定义:可以使用 ShellExecuteEx 打开文件或执行程序
具体的使用教程可以参考:https://www.cctry.com/thread-298120-1-1.html
他的博客写的也很清楚:https://www.cnblogs.com/blogpro/p/11343975.html
我的写的内容不全,刚开始学习,知识暂作笔记而已,后面会修改完善。


使用之前必须导入:#include <shellapi.h>头文件

 BOOL ShellExecuteEx(
      _Inout_ SHELLEXECUTEINFO *pExecInfo
    );

eg::

SHELLEXECUTEINFO sei;//定义一个 ShellExecuteEx 对象sei
	ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));//使用之前最好清零。
	sei.cbSize=sizeof(SHELLEXECUTEINFO);
	sei.lpFile=_T("cmd.exe");//执行文件的路径
	sei.lpVerb= _T("runas");//执行的动作。
	sei.nShow=SW_SHOW;
	ShellExecuteEx(&sei);//执行


lpVerb 参数与 ShellExecute 的 lpOperation 参数一致:
edit 用编辑器打开 lpFile 指定的文档,如果 lpFile 不是文档,则会失败
explore 浏览 lpFile 指定的文件夹
find 搜索 lpDirectory 指定的目录
open 打开 lpFile 文件,lpFile 可以是文件或文件夹
print 打印 lpFile,如果 lpFile 不是文档,则函数失败
properties 显示属性
runas 请求以管理员权限运行,比如以管理员权限运行某个exe
NULL 执行默认”open”动作


nShow 与 ShellExecute 的该参数一致:
● SW_HIDE 隐藏窗口,活动状态给令一个窗口
● SW_MINIMIZE 最小化窗口,活动状态给令一个窗口
● SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态
● SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态
● SW_SHOWMAXIMIZED 最大化窗口,并将其激活
● SW_SHOWMINIMIZED 最小化窗口,并将其激活
● SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口
● SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口
● SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口
● SW_SHOWNORMAL 与SW_RESTORE相同


返回值:
函数执行成功,返回 TRUE ,否则返回 FALSE ,可使用 GetLastError 获取错误码。

● ERROR_FILE_NOT_FOUND 文件不存在
● ERROR_PATH_NOT_FOUND 路径不存在
● ERROR_DDE_FAIL DDE(动态数据交换)失败
● ERROR_NO_ASSOCIATION 未找到与指定文件拓展名关联的应用
● ERROR_ACCESS_DENIED 拒绝访问
● ERROR_DLL_NOT_FOUND 未找到dll
● ERROR_CANCELLED 功能提示用户提供额外信息,但是用户取消请求。
● ERROR_NOT_ENOUGH_MEMORY 内存不足
● ERROR_SHARING_VIOLATION 发生共享冲突


lpFile:
用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名
mailto:nishinapp@yahoo.com可以用来打开系统邮件给某人发邮件
mailto:nishinapp@yahoo.com 打开某个网页。