平时在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
此參数可为下列值之中的一个
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 没有关联不论什么应用程式。