Windows API —— ShellExcute——打开文件
扫描二维码
随时随地手机看文章
函数原型:
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);