函數原型:
1 HINSTANCE ShellExecute( 2 HWND hwnd,//指向父窗口的窗口句柄。此窗口接收應用程序產生的任何信息框 3 LPCTSTR lpOperation,//要執行的操作 4 LPCTSTR lpFile,//要打開或打印的文件或者是要打開或搜索的文件夾。 5 LPCTSTR lpParameters,//如果是exe文件表示傳遞給他的參數 6 LPCTSTR lpDirectory,//默認目錄,當文件路徑問相對路徑時,如果不再當前目錄則需要指定默認目錄 7 INT nShowCmd//顯示方式 8 );
lpOperation:
1 edit 2 啟動編輯器打開文檔 3 explore 4 搜索由參數lpFile指定的文件夾,此文件應是一個文檔文件, 5 find 6 Initiates a search beginning in the directory specified by lpDirectory. 7 open 8 此函數打開由參數lpFile指定的文件,此文件可以是一個可執行文件或文檔文件,也可是一個文件夾 9 print 10 打印由參數lpFile指定的文件,此文件應是一個文檔文件,假如此文件是一個可執行文件,則打開此文件 11 NULL 12 此參數可以為空。這種情況下,函數用於打開由參數lpFile指定的文件
nShowCmd
1 SW_HIDE 隱藏這個窗體,並激活其他窗體。 2 SW_MAXIMIZE 最大化指定的窗體。 3 SW_MINIMIZE 最小化指定的窗體,並按順序激活最上層的窗體。 4 SW_RESTORE 激活並顯示窗體。如果窗體為最小化或者最大化,窗體恢復到原始大小和位置。應用程序當恢復一個最小化的窗體時將指定標記。 5 SW_SHOW 以當前的大小和位置激活並顯示窗體。 6 SW_SHOWDEFAULT 7 SW_SHOWMAXIMIZED 激活並最大化顯示窗體。 8 SW_SHOWMINIMIZED 激活並最小化現實窗體。 9 SW_SHOWMINNOACTIVE 最小化窗體,保持其激活狀態。 10 SW_SHOWNA 以當前狀態顯示窗體,保持其激活狀態。 11 SW_SHOWNOACTIVATE 以當前的大小和位置顯示窗體,並保持其激活狀態。 12 SW_SHOWNORMAL 激活並顯示一個窗體。如果窗體為最大化或者最小化,窗體恢復到原始的大小和位置。當窗體第一次顯示的時候,應用程序記錄標記。
返回值:HINSTANCE:如果執行成功,返回一個大於32的值,否則返回以下值:
1 0 系統內存或資源已耗盡. 2 ERROR_FILE_NOT_FOUND 文件未找到. 3 ERROR_PATH_NOT_FOUND 路徑未找到. 4 ERROR_BAD_FORMAT exe文件無效. 5 SE_ERR_ACCESSDENIED 操作系統拒絕訪問. 6 SE_ERR_ASSOCINCOMPLETE 文件名關聯不完整或非法. 7 SE_ERR_DDEBUSY 動態數據交換執行失敗因為正在執行. 8 SE_ERR_DDEFAIL 動態數據交換執行失敗. 9 SE_ERR_DDETIMEOUT 動態數據交換執行失敗因為超時 10 SE_ERR_DLLNOTFOUND 指定dll未找到. 11 SE_ERR_FNF 指定文件未找到. 12 SE_ERR_NOASSOC 沒有關聯的應用程序,在嘗試打印不可打印的文件時也會返回該錯誤 13 SE_ERR_OOM 沒有足夠的內存來完成操作. 14 SE_ERR_PNF 指定路徑為找到. 15 SE_ERR_SHARE 共享違規.
1 2 //打開網頁 3 ShellExecute(NULL, _T("open"), _T("http://www.vckbase.com"), NULL, NULL, SW_SHOW); 4 5 //打開文件 6 ShellExecute(NULL, _T("open"), _T("D:\\test.txt"), NULL, NULL, SW_SHOW); 7 8 //執行程序 9 ShellExecute(NULL, _T("open"), _T("cmd.exe"), NULL, NULL, SW_SHOW);