SHELLEXECUTEINFO 结构是 Windows API 中的一种结构类型,用于传递给 ShellExecuteEx 函数的参数。该结构包含了一组成员变量,用于指定要执行的操作的详细信息。
SHELLEXECUTEINFO 结构的成员变量如下:
1. dwSize:指定结构的大小,用于指示当前结构的版本。
2. fMask:指定结构中哪些成员变量是有效的。可以是下列值的组合:
- SEE_MASK_CLASSKEY:hkeyClass 成员变量有效。
- SEE_MASK_CLASSNAME:lpClass 成员变量有效。
- SEE_MASK_CONNECTNETDRV:lpNetResource 成员变量有效。
- SEE_MASK_DOENVSUBST:lpFile 成员变量有效,并且将对文件名进行环境变量替换。
- SEE_MASK_FLAG_DDEWAIT:fMask 成员变量有效,将等待 DDE 完成。
- SEE_MASK_FLAG_NO_UI:fMask 成员变量有效,不显示任何用户界面。
- SEE_MASK_HOTKEY:hIcon 成员变量有效。
- SEE_MASK_ICON:hIcon 成员变量有效。
- SEE_MASK_IDLIST:lpIDList 成员变量有效。
- SEE_MASK_INVOKEIDLIST:lpIDList 成员变量有效。
- SEE_MASK_NOCLOSEPROCESS:hProcess 成员变量有效。
- SEE_MASK_NO_CONSOLE:fMask 成员变量有效,不显示命令行窗口。
- SEE_MASK_NOASYNC:fMask 成员变量有效,同步执行操作。
- SEE_MASK_NO_CONNECT_UI:fMask 成员变量有效,不显示连接用户界面。
- SEE_MASK_NOCURRENTDIR:fMask 成员变量有效,不使用当前目录。
- SEE_MASK_NODEFAULT:fMask 成员变量有效,不使用 ShellExecuteEx 默认值。
- SEE_MASK_NO_HOOKS:fMask 成员变量有效,不使用 ShellExecuteEx 钩子。
- SEE_MASK_NOQUERYCLASSSTORE:fMask 成员变量有效,不查询类存储。
- SEE_MASK_PLAYBACK:hProcess 成员变量有效。
- SEE_MASK_UNICODE:fMask 成员变量有效,使用 Unicode 字符集。
- SEE_MASK_WAITFORINPUTIDLE:fMask 成员变量有效,等待操作完成。
- SEE_MASK_WAITFORSTORAGEANCESTOR:fMask 成员变量有效,等待存储祖先进程完成。
3. hwnd:指定要执行操作的窗口句柄。
4. lpVerb:指定要执行的操作。可以是以下值之一:
- "open":打开指定的文件。
- "print":打印指定的文件。
- "properties":显示指定的文件的属性对话框。
- "edit":使用默认编辑器打开指定的文件。
- "explore":打开资源管理器并选中指定的文件。
5. lpFile:指定要执行操作的文件名。
6. lpParameters:指定传递给执行程序的参数字符串。
7. lpDirectory:指定执行程序的工作目录。
8. nShow:指定窗口的显示方式。可以是以下值之一:
- SW_HIDE:隐藏窗口。
- SW_SHOWNORMAL:显示窗口,并激活。
- SW_SHOWMINIMIZED:最小化窗口,并激活。
- SW_SHOWMAXIMIZED:最大化窗口,并激活。
- SW_SHOWNOACTIVATE:显示窗口,但不激活。
- SW_SHOW:显示窗口,并激活。
- SW_MINIMIZE:最小化窗口。
- SW_SHOWMINNOACTIVE:最小化窗口,但不激活。
- SW_SHOWNA:显示窗口,但不激活。
- SW_RESTORE:还原窗口,并激活。
- SW_SHOWDEFAULT:根据窗口的显示状态,设置窗口的显示方式。
- SW_FORCEMINIMIZE:最小化窗口,不管窗口是否可最小化。
9. hInstApp:指定调用方的应用程序实例句柄