函数原型:

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