這是 WinAPI 裡面的其中一個方法。
直接翻譯的話,就是外部執行,也就是執行外部的程式。
ShellExecute 的語法為…
HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ); |
參數說明
參數名稱 | 型別 | 備註 |
hwnd | HWND | 擁有者的 handle ,也就是要控制外部程式的視窗。 |
lpOperation | LPCTSTR | 操作的方式: edit – 對一個文件做開啟和編輯的動作。 explore – 瀏覽特定的檔案,HTML之類的。 find – 開啟從 lpDirectory 指定的資料夾的搜尋。 open – 開啟 lpFile 指定的項目。這個項目可以是檔案或資料夾。 print – 列印 lpFile 指定的檔案。如果不是文件檔,回傳錯誤。 NULL – 在 Win 2000 之前的系統,使用預設動作。如果預設動作不是合法且可用的,就使用「open」的動作。 |
lpFile | LPCTSTR | 指定的檔案。 |
lpParameters | LPCTSTR | 傳送給指定檔案的參數,通常文件檔應該是 NULL。 |
lpDirectory | LPCTSTR | 指定預設的資料夾(執行資料夾),在 lpFile 裡面出現的相對連結並不會相對於這個資料夾。 |
nShowCmd | INT | 指定當程式開啟時的方式。 |
// 執行一個程式 ShellExecute(this->m_hWnd, "open", "eco.exe", "", "", SW_SHOW); // 發送 mail // 列印文件 |
以上只是很簡單的使用方式,更多的方法請看底下連結~
ShellExecute Function
win API 函數ShellExecute的多種用法
深入浅出ShellExecute
其實,之所以會用到這個方法,是為了要開 ECO 的雙視窗XD
本來是用 .bat 檔來開的,但和它不熟,不知道是否有 delay 之類的語法
應他人要求,試著用 c++ 寫了一個,成功率明顯提升!
絕對沒有改寫任何 ECO 的程式…應該沒有犯法吧~?
–End