• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi Win API 函数 [ ShellAPI ] ShellExecute 函数--运行一个外部程序 - 滔Roy ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Delphi Win API 函数 [ ShellAPI ] ShellExecute 函数--运行一个外部程序

引用单元:uses ShellAPI;

函数功能:运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。

函数原型:function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall; 

  hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。 
  Operation:用于指定要进行的操作。为nil时,表示默认执行“open”。 
    open:操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;
    print:操作表示打印由FileName参数指定的文件;
    explore:操作表示浏览由FileName参数指定的文件夹。
     {指定动作, 譬如: open、runas、print、edit、explore、find }
 
  FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。 
  Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。 
  Directory:用于指定默认目录。 
  ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。 
    SW_HIDE 隐藏 
    SW_MAXIMIZE 最大化 
    SW_MINIMIZE 最小化,并把Z order顺序在此窗口之后(即窗口下一层)的窗口激活 
    SW_RESTORE 激活窗口并还原为初始化大小 SW_SHOW 以当前大小和状态激活窗口 
    SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态 
    SW_SHOWDEFAULT 以默认方式运行
    SW_SHOWMAXIMIZED 激活窗口并最大化 
    SW_SHOWMINIMIZED 激活窗口并最小化 
    SW_SHOWMINNOACTIVE 最小化但不改变当前激活的窗口 
    SW_SHOWNA 以当前状态显示窗口但不改变当前激活的窗口 
    SW_SHOWNOACTIVATE 以初始化大小显示窗口但不改变当前激活的窗口 
    SW_SHOWNORMAL 激活并显示窗口,如果是最大(小)化,窗口将会还原。第一次运行程序 时应该使用这个值 
 函数调用成功,则返回被执行程序的实例。若返回值小于32,则表示出现错误。 
 
返回值
  执行成功会返回应用程序句柄
  返回的HINSTANCE可以将它转换为一个整数(%d),并比较它的值大于还是小于32或比较它的错误代码
  返回值大于32表示执行成功
  返回值小于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; {没有相关联的应用程序}
 
 
Delphi示例:
  ShellExecute(Handle ‘open’, ‘calc.exe’,NULL, NULL,SW_SHOWMAXIMIZED );    //打开计算器
  ShellExecute(Handle, \'open\', PChar(\'http://www.baidu.com\'), nil, nil, SW_SHOW);  打开一个网址
  ShellExecute(Handle, \'explore\', PChar(\'c:/windows)\', nil, nil, SW_SHOW);      //打开指定目录
  ShellExecute(handle, ‘open’,‘ ***@163.com’, nil, nil, SW_SHOWNORMAL);        //打开邮件窗口发邮件
  ShellExecute(Handle, \'open\', \'firefox.exe\', \'about:blank\', nil, SW_SHOWNORMAL);   //用火狐浏览器打开
 
用记事本打开指定文件:
  ShellExecute(Handle, \'open\', \'notepad.exe\', \'C:\WINDOWS\test.txt\', nil, SW_SHOWNORMAL);
  ShellExecute(0, \'open\', \'notepad.exe\', \'C:\WINDOWS\test.txt\', nil, SW_SHOWNORMAL);
  ShellExecute(0, nil, \'notepad.exe\', \'C:\WINDOWS\test.txt\', nil, SW_SHOWNORMAL);
  ShellExecute(0, nil, \'notepad.exe\', \'test.txt\', \'C:\WINDOWS\', SW_SHOWNORMAL);

 

 
 
创建日期:2019.12.24  更新时间:2020.03.03
来源于:https://www.cnblogs.com/guorongtao/p/12089515.html
 
 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab绘制心形函数发布时间:2022-07-18
下一篇:
[Matlab]二维统计分析图实例发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap