函数功能: ShellExecute 用于打开打印指定的文件( exe , txt ,网络。。。)。
函数原型:
HINSTANCE ShellExecute (
HWND hwnd ,
LPCTSTR lpOperation ,
LPCTSTR lpFile ,
LPCTSTR lpParameters ,
LPCTSTR lpDirectory ,
INT nShowCmd
);
例子如下:
// 调用计算器
ShellExecute (NULL , "open", "calc.exe", NULL , NULL , SW_SHOWNORMAL );
// 调用记事本
ShellExecute (NULL , "open", "NOTEPAD.EXE", NULL , NULL , SW_SHOWNORMAL );
// 调用 IE 打开 Google 或其他网页
ShellExecute (NULL , "open", "C://Program Files//Internet Explorer//IEXPLORE.EXE", "-new http://www.google.com", NULL , SW_SHOWNORMAL );
ShellExecute (NULL , "open", “http://www. google.com”, NULL , NULL , SW_SHOWNORMAL );
// 调用默认邮件客户程序
ShellExecute (NULL , "open", “mailto:”, NULL , NULL , SW_SHOWNORMAL );
ShellExecute (NULL , "open", “mailto:[email protected]”, NULL , NULL , SW_SHOWNORMAL );
ShellExecute (NULL , "open", “mailto:[email protected]?subject=Hello & Body=This is a test”, NULL , NULL , SW_SHOWNORMAL );
函数返回值:
成功 >32; ShellExecute 函数调用成功,则返回值为被执行程序的实例句柄。
失败 <=32; ShellExecute 函数调用表示出现错误
0 == 系统资源耗尽 .
ERROR_FILE_NOT_FOUND == 没有找到指定的文件 .
ERROR_PATH_NOT_FOUND == 没有找到指定的路径 .
ERROR_BAD_FORMAT == 可执行文件错误(不是 Win32® .exe ,或者 .exe file 本身错误) .
SE_ERR_ACCESSDENIED == 操作系统拒绝访问指定的文件 .
SE_ERR_ASSOCINCOMPLETE == 文件名关联不合法或关联错误 .
SE_ERR_DDEBUSY == DDE 事务处理忙 .
SE_ERR_DDEFAIL == DDE 事务处理出错 .
SE_ERR_DDETIMEOUT == DDE 事务处理等待超时 .
SE_ERR_DLLNOTFOUND == 没有找到指定的动态链接库 .
SE_ERR_FNF == 没有找到指定的文件 .
SE_ERR_NOASSOC == 没有找到和指定的文件扩展名相关联的应用程序 .
SE_ERR_OOM == 系统内存不足 .
SE_ERR_PNF == 没有找到指定的路径 .
SE_ERR_SHARE == 共享违例错误 .
hWnd :用于指定父窗口句柄。当函数调用过程出现错误时,它将作为 Windows 消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即 Application.Handle ,也可以将其设置为桌面窗口句柄(用 GetDesktopWindow 函数获得) .
Operation :用于指定要进行的操作。其中 “open” 操作表示执行由 FileName 参数指定的程序,或打开由 FileName 参数指定的文件或文件夹; “print” 操作表示打印由 FileName 参数指定的文件; “explore” 操作表示浏览由 FileName 参数指定的文件夹。当参数设为 NULL 时,表示执行默认操作 “open”.
FileName :用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名 .
Parameters :若 FileName 参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为 NULL .
Directory :用于指定默认目录。
ShowCmd :若 FileName 参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为 NULL .
SW_HIDE == 隐藏指定的窗口并激活 Z-Order 上的下一个窗口 .
SW_MAXIMIZE == 最大化指定的窗口 .
SW_MINIMIZE == 最小化指定的窗口并激活 Z-Order 上的下一个窗口 .
SW_RESTORE == 激活并显示指定的窗口 . 如果窗口被最大化或者最小化系统将恢复窗口的原始大小和初始位置 . 如果应用程序需要恢复一个已经被最小化的窗口的时候,需要设置这个标志 .
SW_SHOW == 激活并以原始大小和初始位置显示指定的窗口 .
SW_SHOWDEFAULT == 设置显示状态( SW_ 值),程序在启动应用程序时需指定该值 .
SW_SHOWMAXIMIZED == 激活并最大化指定窗口 .
SW_SHOWMINIMIZED == 激活并最小化指定窗口 .
SW_SHOWMINNOACTIVE == 最小化显示指定窗口。与 SW_SHOWMINIMIZED 不同之处在于该窗口将不被激活 .
SW_SHOWNA == 指定窗口根据其当前大小和位置信息显示。与 SW_SHOW 不同之处在于该窗口将不被激活 .
SW_SHOWNOACTIVATE == 指定窗口以其上一次的大小和位置显示。与 SW_SHOWNORMAL 不同之处在于该窗口将不被激活 .
SW_SHOWNORMAL == 激活并显示指定窗口,如果该窗口已最小化或最大化则以其原始大小和位置还原。一般来说,应用程序在首次显示窗口时应该应用此标志 .