Windows API — ShellExecute function

ShellExecute function

Syntax

Parameters

hwnd [in, optional]
Type: HWND
指定父窗口句柄用于显示UI或错误消息。如果操作不与窗口相关联,这个值可以是NULL。
lpOperation [in, optional]
Type: LPCTSTR
一个指针,指向一个空终止字符串,在这种情况下为一个动词,它指定要执行的动作。一组可用动词取决于特定的文件或文件夹。一般情况下,从一个对象的快捷菜单中得到可用的操作动词。常用的动词有以下:

edit
启动编辑器,并打开该文件进行编辑。如果参数lpFile不是一个文档文件,该函数将失败。
explore
浏览由参数lpFile指定的文件夹。
find
从lpDirectory指定的目录中开始搜索。
open
打开由参数lpFile指定的项目。该项目可以是一个文件或文件夹。
print
打印由参数lpFile指定的文件。如果参数lpFile不是一个文档文件,该函数将失败。
NULL
默认的动作,如果有的话。如果没有,使用“open”。如果没有动作可用,系统将使用在注册表中列出的第一个动词。
lpFile [in]
Type: LPCTSTR
一个指针,指向一个空终止字符串,该字符串指定要在其上执行指定动作的文件或对象。要通过完全合格的解析名称指定一个Shell命名空间对象。请注意,并非所有动词都支持所有对象。例如,不是所有的文件类型都支持“打印”动词。如果lpDirectory参数使用相对路径,参数lpFile不要使用相对路径。
lpParameters [in, optional]
Type: LPCTSTR
如果参数lpFile指定一个可执行文件,这个参数是一个指针,指向一个空终止字符串,该字符串指定要传递给应用程序的参数。此字符串的格式由被调用的动词确定。如果参数lpFile指定一个文档文件,lpParameters应该是NULL。
lpDirectory [in, optional]
Type: LPCTSTR
一个指针,指向一个空终止字符串,该字符串指定默认的(工作)目录。如果这个值是NULL,则使用当前工作目录。如果使用参数lpFile提供的相对路径,lpDirectory不使用相对路径。
nShowCmd [in]
Type: INT
该指定的应用程序在打开时的显示标识。如果参数lpFile指定一个文档文件,该标记被简单地传递到相关联的应用程序。它是由应用程序决定如何处理它。这些值在Winuser.h中定义。

SW_HIDE (0)
隐藏窗口并激活另一个窗口。
SW_MAXIMIZE (3)
最大化指定窗口。
SW_MINIMIZE (6)
最小化指定窗口并在z-order激活下一个顶层窗口。
SW_RESTORE (9)
激活并显示窗口。如果窗口被最小化或最大化,Windows将它恢复到原来的大小和位置。还原最小化窗口时,应用程序应指定此标识。
SW_SHOW (5)
激活窗口,并在其当前大小和位置显示。
SW_SHOWDEFAULT (10)
通过启动应用程序设置基于STARTUPINFO结构中指定的SW_flag的显示状态传递给CreateProcess 函数,应用程序应该调用ShowWindow这个标志设置主窗口最初显示状态。
SW_SHOWMAXIMIZED (3)
激活窗口并将其显示为最大化窗口。
SW_SHOWMINIMIZED (2)
激活窗口并将其显示为最小化窗口。
SW_SHOWMINNOACTIVE (7)
显示窗口为最小化窗口。活动窗口保持活动状态。
SW_SHOWNA (8)
显示在当前状态的窗口。活动窗口保持活动状态。
SW_SHOWNOACTIVATE (4)
显示在最近的大小和位置的窗口。活动窗口保持活动状态。
SW_SHOWNORMAL (1)
激活并显示一个窗口。如果窗口被最小化或最大化,Windows将它恢复到原来的大小和位置。显示第一次的窗口时,应用程序应指定此标志。

Return value

Type: HINSTANCE
如果函数成功,则返回一个大于32的值。如果函数失败,则返回一个错误值,指出失败的原因。返回值是为了向后兼容16-bit Windows应用程序。但是,它不是一个真正的程序。它可以转换为intint和32或如下错误代码比较。
错误代码 描述

0
操作系统是内存或资源。
ERROR_FILE_NOT_FOUND
找不到指定的文件。
ERROR_PATH_NOT_FOUND
找不到指定的路径。
ERROR_BAD_FORMAT
.exe文件无效(非Win32.exe文件或错误的.exe镜像)。
SE_ERR_ACCESSDENIED
操作系统拒绝访问指定的文件。
SE_ERR_ASSOCINCOMPLETE
文件名关联不完整或无效。
SE_ERR_DDEBUSY
DDE的交易无法完成,因为其他的DDE交易正在处理中。
SE_ERR_DDEFAIL
该DDE事务失败。
SE_ERR_DDETIMEOUT
DDE的交易无法完成,因为请求超时。
SE_ERR_DLLNOTFOUND
找不到指定的DLL。
SE_ERR_FNF
找不到指定的文件。
SE_ERR_NOASSOC
没有与给定的文件扩展名关联的应用程序。如果您尝试打印一个文件,该文件是不可打印,这个错误也将被返回。
SE_ERR_OOM
没有足够的内存来完成操作。
SE_ERR_PNF
找不到指定的路径。
SE_ERR_SHARE
发生共享冲突。

实例

如无注明,均为原创。转载请注明: 转载自MITGAI`S THINKING
本文链接地址: Windows API — ShellExecute function

知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

如果本文对您生活或工作产生了积极影响,那我非常高兴。
如果您愿意为文章的内容或想法提供支持,欢迎点击下边的捐赠按钮,资助作者创作更多高价值高品质的内容。
支付宝捐赠
anyShare分享到:

By Tony Su on 四月 16, 2014 · Posted in C/C++, Languages, Windows API

Be the first to post a comment.