平时在delphi写代码的过程中总是能遇到ShellExecute函数,于是索性将它的用法整理一下,因为我在微软的网站上也没能查到个详细解释(当然我查的中文版,俺菜嘛)
ShellExecute函数原型及参数含义如下:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;
●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即 Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。
●Operation:用于指定要进行的操作。
其中“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;
“print”操作表示打印由FileName参数指定的文件;
“explore”操作表示浏览由FileName参数指定的文件夹。
当参数设为nil时,表示执行默认操作“open”;
edit 编辑;
find 搜寻
最后这两个是在别的网站上找到的,没有验证是不是这样。
●FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。
●Directory:用于指定默认目录。
●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0
此参数可为下列值之一
补充:
MAXIMIZE : 最大化窗口
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则失败,有下列几种回应值:
2 错误的关联 (例如:不合法的 URL)
29 关联失败
30 关联应用程式忙碌中...
31 没有关联任何应用程式。
ShellExecute函数原型及参数含义如下:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;
●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即 Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。
●Operation:用于指定要进行的操作。
其中“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;
“print”操作表示打印由FileName参数指定的文件;
“explore”操作表示浏览由FileName参数指定的文件夹。
当参数设为nil时,表示执行默认操作“open”;
edit 编辑;
find 搜寻
最后这两个是在别的网站上找到的,没有验证是不是这样。
●FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。
●Directory:用于指定默认目录。
●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0
此参数可为下列值之一
DisplayState | 值 | 含义 |
HIDE | 0 | 隐藏窗口并激活其他窗口 |
SHOWNORMAL | 1 | 激活并显示一个窗口 如果窗口是最小化或最大化, 将其还原到其原始大小和位置 (同 RESTORE) |
SHOWMINIMIZED | 2 | 激活窗口并最小化 |
SHOWMAXIMIZED | 3 | 激活窗口并最大化 |
SHOWMINNOACTIVATE | 4 | 以最近的大小和位置显示窗口 当前活动窗口保持活动 |
SHOW | 5 | 激活窗口并显示其当前大小和位置中 |
MINIMIZE | 6 | 最小化指定窗口并激活系统列表中顶层窗口 |
SHOWMINNOACTIVE | 7 | 以最小化模式显示窗口 当前活动窗口保持活动 |
SHOWNA | 8 | 以最近的状态显示窗口 当前活动窗口保持活动 |
RESTORE | 9 | 激活窗口并显示 如果窗口是最小化或最大化,还原到其原始大小和位置 (同SHOWNORMAL) |
MAXIMIZE : 最大化窗口
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则失败,有下列几种回应值:
2 错误的关联 (例如:不合法的 URL)
29 关联失败
30 关联应用程式忙碌中...
31 没有关联任何应用程式。