定義:可以使用 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 打開某個網頁。
