使用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);