ShellExecute(
hWnd: HWND; {指定父窗口句柄}
Operation: PChar; {指定动作, 譬如: open、print}
FileName: PChar; {指定要打开的文件或程序}
Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil}
Directory: PChar; {缺省目录}
ShowCmd: Integer {打开选项}
): HINST; {执行成功会返回应用程序句柄; 如果这个值 <= 32, 表示执行错误}
//返回值可能的错误有:
= 0 {内存不足}
ERROR_FILE_NOT_FOUND = 2; {文件名错误}
ERROR_PATH_NOT_FOUND = 3; {路径名错误}
ERROR_BAD_FORMAT = 11; {EXE 文件无效}
SE_ERR_SHARE = 26; {发生共享错误}
SE_ERR_ASSOCINCOMPLETE = 27; {文件名不完全或无效}
SE_ERR_DDETIMEOUT = 28; {超时}
SE_ERR_DDEFAIL = 29; {DDE 事务失败}
SE_ERR_DDEBUSY = 30; {正在处理其他 DDE 事务而不能完成该 DDE 事务}
SE_ERR_NOASSOC = 31; {没有相关联的应用程序}
//ShowCmd 参数可选值:
SW_HIDE = 0; {隐藏}
SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}
SW_NORMAL = 1; {同 SW_SHOWNORMAL}
SW_SHOWMINIMIZED = 2; {最小化, 激活}
SW_SHOWMAXIMIZED = 3; {最大化, 激活}
SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}
SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}
SW_SHOW = 5; {同 SW_SHOWNORMAL}
SW_MINIMIZE = 6; {最小化, 不激活}
SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}
SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}
SW_RESTORE = 9; {同 SW_SHOWNORMAL}
SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}
SW_MAX = 10; {同 SW_SHOWNORMAL}
//举例说明更多问题(别忘了 uses ShellAPI;):
{譬如用记事本打开一个文件}
begin
ShellExecute(Handle, 'open', 'notepad.exe', 'C:\WINDOWS\SchedLgU.Txt', nil, SW_SHOWNORMAL);
end;
{第一个参数是用来当作错误提示窗口的父窗口的, 不能是 nil, 可以是 0(也就是桌面窗口)}
begin
ShellExecute(0, 'open', 'notepad.exe', 'C:\WINDOWS\SchedLgU.Txt', nil, SW_SHOWNORMAL);
end;
{第二个参数如果是 nil, 也会默认位 open}
begin
ShellExecute(0, nil, 'notepad.exe', 'C:\WINDOWS\SchedLgU.Txt', nil, SW_SHOWNORMAL);
end;
{文件路径可以放在参数五}
begin
ShellExecute(0, nil, 'notepad.exe', 'SchedLgU.Txt', 'C:\WINDOWS', SW_SHOWNORMAL);
end;
{把参数三直接指定为要打开的文件, 文件将用对应默认程序打开; 次数参数四应为 nil}
begin
ShellExecute(0, nil, 'SchedLgU.Txt', nil, 'C:\WINDOWS', SW_SHOWNORMAL);
end;
{如果文件在: 程序目录/当前目录/System32/Windows/PATH环境变量中, 参数五也可以 nil}
begin
ShellExecute(0, nil, 'SchedLgU.Txt', nil, nil, SW_SHOWNORMAL);
end;
{如果参数三是个文件, 可以用参数二命令打印}
begin
ShellExecute(0, 'print', 'SchedLgU.Txt', nil, nil, 1);
end;
{用 IE 打开网页}
begin
ShellExecute(Handle, 'open', 'IExplore.EXE', 'about:blank', nil, SW_SHOWNORMAL);
end;
{用火狐打开网页}
begin
ShellExecute(Handle, 'open', 'firefox.exe', 'about:blank', nil, SW_SHOWNORMAL);
end;
{用默认浏览器打开网页}
begin
ShellExecute(Handle, 'open', 'Explorer.exe', 'about:blank', nil, SW_SHOWNORMAL);
end;
{还是用默认浏览器打开网页}
begin
ShellExecute(0, nil, 'http://del.cnblogs.com', nil, nil, 1);
end;
--记录来自万一老师的博客。
本文固定链接: http://www.gogofly.com/archives/delphi-windows-shellexecute-open-exe/ | 无名设计
相关推荐
WinAPI_Delphi 新编WinAPI参考大全 chm版 参考学习所必备的东西。
WinApi WinAPI基本操作准则
WinAPI大全.rar 应用程序编程接口WinAPI大全 应用程序编程接口WinAPI大全 应用程序编程接口WinAPI大全 应用程序编程接口WinAPI大全 应用程序编程接口WinAPI大全
WinAPI大全,windows编程辅助工具,CHM格式
由 jNizM 编写的 AutoHotkey、WinAPI 和 DllCall AHK --> DllCall --> WinAPI当前的剪贴板功能[CloseClipboard](src/Clipboard Functions/CloseClipboard.ahk) [EmptyClipboard](src/Clipboard Functions/...
c# 调用 WinApi 程序集 源码 c# 调用 WinApi 程序集 源码 c# 调用 WinApi 程序集 源码
应用WinAPI函数修饰程序窗体实例
C读取DXF文件并用GDI的相关API显示出图形。 只读取了LINE和CIRCLE实体以作示例。 用VC++6.0编译通过。
CSharp项目,dotnet标准2.0库。 PInvoke系统调用的外部定义和托管包装。 涵盖了user32,kernel32,setupapi和hid(dll)。
VC winapi说明,十分全的API函数说明
WinAPI技巧:恶意软件使用或滥用的各种WINAPI技巧功能的集合
WinApi 一个简单,直接,超薄的CLR库,用于高性能Win32 Native Interop static int Main ( string [] args ){ using ( var win = Window . Create ( text : " Hello " )) { win . Show (); return new EventLoop ()....
想看到回调函数如何被调用,可以在VC++下面,调试模式下,在回调函数内部设置断点,再查看调用栈的方式,可以看到回调函数会被哪些函数调用,这也是提高认识回调函数,WinAPI运行机制的一种方法!
winAPI常用函数总结,特别适合初学者,当手册进行查询,尹成大神推荐
Delphi编写的WinAPI函数速查程序..rar
一个C++写的WinAPI管理程序,可以添加,删除API函数以及参数,内已录入近700API函数
使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序...
vc winapi 网络编程 tcp client vc winapi 网络编程 tcp client vc winapi 网络编程 tcp client vc winapi 网络编程 tcp client vc winapi 网络编程 tcp client vc winapi 网络编程 tcp client
C# 使用WINAPI 直接向指定打印机发送打印数据,实现分单打印...