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:指定調用方的應用程序實例句柄