ShellExecute很常用,我們可以使用它調(diào)用另外一個exe可執(zhí)行程序,也可以使用它來打開指定的目錄或文件。本文主要討論如何通過ShellExecute來打開目標(biāo)文件所在文件夾并選中目標(biāo)文件。
剛開始嘗試用下面的代碼實現(xiàn)想要的功能:
- CString str = _T("E:\\TestDir\\test.txt");
- ShellExecute( NULL, _T("open"), _T("explorer.exe"), str, NULL, SW_SHOWNORMAL );
但是沒有達(dá)到預(yù)定的效果,而是直接將指定的文件打開了,我只想打開指定文件所在的目錄并選中該文件。通過查閱網(wǎng)上相關(guān)話題,應(yīng)使用如下的代碼:
- CString str = _T("/select, E:\\TestDir\\test.txt");
- ShellExecute( NULL, _T("open"), _T("explorer.exe"), str, NULL, SW_SHOWNORMAL );
當(dāng)打開指定的目錄或文件會使用explorer.exe資源管理器,就需要了解Explorer相關(guān)命令的參數(shù)了。
命令格式
Explorer [/n][/e][[,/root],[path]][[,/select],[path filename]]
參數(shù)說明
/n表示以“我的電腦”方式打開一個新的窗口,通常打開的是Windows安裝分區(qū)的根目錄。
/e表示以“資源管理器”方式打開一個新的窗口,通常打開的也是Windows安裝分區(qū)的根目錄。
/root,[path]表示打開指定的文件夾,/root表示只顯示指定文件夾下面的文件(夾),不顯示其它磁盤分區(qū)和文件夾;[path]表示指定的路徑。如果不加/root參數(shù),而只用[path]參數(shù),則可以顯示其它磁盤分區(qū)和文件夾中的內(nèi)容。另外,[path]還可以指定網(wǎng)絡(luò)共享文件夾。
/select,[path filename]表示打開指定的文件夾并且選中指定的文件,[path
filename]表示指定的路徑和文件名。如果不加/select參數(shù),則系統(tǒng)會用相應(yīng)的關(guān)聯(lián)程序打開該文件。如果[path
filename]不跟文件名就會打開該文件夾的上級目錄并選中該文件夾。(注意:“/select”參數(shù)后面的逗號不能丟)
|