使用ShellExecute可以操作指定的文件。
所在头文件(VC): #include <shellapi.h>
ShellExecute函数原型及参数含义如下:
HINSTANCE ShellExecute( HWND hWnd; // {指定父窗口句柄} LPCTSTR lpVerb; // {指定动作, 譬如: open、print} LPCTSTR lpFile; // {指定要打开的文件或程序} LPCTSTR lpParameters; // {给要打开的程序指定参数; 如果打开的是文档文件这里应该是 NULL} LPCTSTR lpDirectory; // {缺省目录} INT nShowCmd: // {打开选项} ): // {执行成功会返回应用程序句柄; 如果这个值 <= 32, 表示执行错误}
Verb 描述
edit 打开文档用来edit;如果lpFile不是文档文件,那么函数fail
explore 展开指定文件的文件夹
find 从指定目录开始搜索
open 打开指定文件,可以是文档、可执行文件或是文件夹
print 打印指定的文档文件
properties 展现文件或文件夹的属性
返回值
0 {内存不足}
ERROR_FILE_NOT_FOUND = 2; {文件名错误}
ERROR_PATH_NOT_FOUND = 3; {路径名错误}
ERROR_BAD_FORMAT = 11; {EXE 文件无效}
SE_ERR_SHARE = 26; {发生共享错误}
SE_ERR_ASSOCINCOMPLETE = 27; {文件名不完全或无效}
SE_ERR_DDETIMEOUT = 28; {超时}
SE_ERR_DDEFAIL = 29; {DDE 事务失败}
SE_ERR_DDEBUSY = 30; {正在处理其他 DDE 事务而不能完成该 DDE 事务}
SE_ERR_NOASSOC = 31; {没有相关联的应用程序}
ShowCmd 参数可选值
SW_HIDE = 0; {隐藏}
SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}
SW_NORMAL = 1; {同 SW_SHOWNORMAL}
SW_SHOWMINIMIZED = 2; {最小化, 激活}
SW_SHOWMAXIMIZED = 3; {最大化, 激活}
SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}
SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}
SW_SHOW = 5; {同 SW_SHOWNORMAL}
SW_MINIMIZE = 6; {最小化, 不激活}
SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}
SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}
SW_RESTORE = 9; {同 SW_SHOWNORMAL}
SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}
SW_MAX = 10; {同 SW_SHOWNORMAL}
Example
ShellExecute(handle, "open", path_to_folder, NULL, NULL, SW_SHOWNORMAL);