ShellExecute

這是 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(this->m_hWnd, "open", "mailto:test@yahoo.com.tw", "", "", SW_SHOW );

 // 列印文件
 ShellExecute(this->m_hWnd, "print", "c:\\abc.txt", "", "", SW_HIDE);

以上只是很簡單的使用方式,更多的方法請看底下連結~

ShellExecute Function
win API 函數ShellExecute的多種用法
深入浅出ShellExecute



其實,之所以會用到這個方法,是為了要開 ECO 的雙視窗XD
本來是用 .bat 檔來開的,但和它不熟,不知道是否有 delay 之類的語法
應他人要求,試著用 c++ 寫了一個,成功率明顯提升!
絕對沒有改寫任何 ECO 的程式…應該沒有犯法吧~?
–End

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s