1、WinExec():

  WinExec主要运行EXE文件,不能运行其他类型的文件,不用引用特别单元。原型是:

UINT WinExec(exePath,ShowCmd)

  参数说明:

  --xePath:命令行参数。注意,要用pChar转化一下。--ShowCmd:外部程序的运行方式。其取值如下: ----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 激活并显示窗口,如果是最大(小)化,窗口将会还原。第一次运行程序 时应该使用这个值 

  如果调用成功,这个函数会返回一个不小于31的值,否则调用失败,其返回值的意义如下:

  --0 系统内存或资源不足 --ERROR_BAD_FORMAT .EXE文件格式无效(比如不是32位应用程序) --ERROR_FILE_NOT_FOUND 指定的文件设有找到--ERROR_PATH_NOT_FOUND 指定的路径没有找到

示例,我想要用记事本打开"C:\HDC.TXT",以正常方式运行:

WinExec(pChar('notepad.exe C:\HDC.TXT'),SW_SHOWNORMAL); 

  这个函数和system()非常类似,只能运行.EXE文件,这样在WINDOWS中有它不尽人意的地方,比如不能用此方法通过关联的方法打开文件,例如WinExec("1.html",SW_SHOWNA);就不能打开此文档。

2、ShellExecute() :

  不仅可以运行EXE文件,也可以运行系统已经关联的文件。这个函数和WIN9X中的命令行命令"start"类似,不仅可以对文件进行操作,还可以对HTTP、MAILTO等进行操作。这样我们可以设计有超级链接风格的程序了。ShellExecute的功能要强得多,并且可以完全替代WinExec(),事实上,WinExec()也是为了和以前版本兼容而保留,所以,我们要尽量使用ShellExecute()。

  首先必须引用shellapi.pas单元:uses ShellAPI; 函数原型:

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”。 --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 激活并显示窗口,如果是最大(小)化,窗口将会还原。第一次运行程序 时应该使用这个值 

  若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。  刚才的例子:

WinExec(pChar('notepad.exe C:\HDC.TXT'),SW_SHOWNORMAL); 

就可以改变为(假设窗口的句柄为Handle)

ShellExecute(Handle,'open','notepad','c:\taoyoyo.txt','',SW_SHOWNORMAL); 

 此外,还可以不用那么复杂,因为.TXT的关联程序就是记事本,所以只要这样就可以了:

ShellExecute(Handle,'','c:\taoyoyo.txt','','',SW_SHOWNORMAL); 

整理自:https://www.cnblogs.com/semth/p/10494685.html

WinExec、ShellExecute用法详解相关推荐

  1. python argv 详解_Python3 sys.argv[ ]用法详解

    sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个"外部"很关键,因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可 ...

  2. oracle中的exists 和 not exists 用法详解

    from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...

  3. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...

  4. python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  5. C++中substr()函数用法详解

    C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...

  6. php theme_path,PHP_Yii2主题(Theme)用法详解,本文实例讲述了Yii2主题(Theme) - phpStudy

    Yii2主题(Theme)用法详解 本文实例讲述了Yii2主题(Theme)用法.分享给大家供大家参考,具体如下: 首先看看主要的配置方式: 'components' => [ 'view' = ...

  7. LayoutInflater的inflate函数用法详解

    LayoutInflater的inflate函数用法详解 LayoutInflater作用是将layout的xml布局文件实例化为View类对象. 获取LayoutInflater的方法有如下三种: ...

  8. Ext.Net学习笔记22:Ext.Net Tree 用法详解

    上面的图片是一个简单的树,使用Ext.Net来创建这样的树结构非常简单,代码如下: <ext:TreePanel runat="server"><Root> ...

  9. WinDbg用法详解

    WinDbg用法详解 对WinDbg的方方面面作了详细的讲解. 转载于:https://blog.51cto.com/laokaddk/125111

最新文章

  1. Python编码实现冒泡排序
  2. ReactNative项目打包(Android IOS)
  3. 中级.NET开发人员
  4. Delete Edges 完全图-找规律
  5. Android手机隐藏命令大全
  6. asp.net gridview 模板列 弹出窗口编辑_【线上课堂】中国(辽宁)国际贸易单一窗口企业资质系统业务操作...
  7. canva怎么拼接图片_小间距LED显示屏怎么拼接成2K,4K和8K显示屏_小间距显示屏厂家为您科普...
  8. Selenium自动化测试IE
  9. 腾讯广告算法大赛“视”界杯专题直播来袭,腾讯专家助你赛场争先!
  10. 微信小程序优惠券的购买和核销的操作流程设计
  11. 国产谷歌地球,地形分析秒杀同款地图软件
  12. 十种常用的的数据分析思路,你都知道吗?
  13. cd linux自带系统安装,大神示范win7系统将CDLinux装入硬盘的法子
  14. Java流处理之高效读写的缓冲流
  15. 阴阳师夜刀神技能是什么
  16. DirextX 11游戏开发(1)
  17. 【Java】Java中Pair的使用
  18. Interproscan linux版本详细安装教程及运行报错解决方案
  19. python+vue高校图书借阅管理系统
  20. 阿里云商标注册教程:新手自助申请步骤

热门文章

  1. Java社区领袖介绍平台支持选项
  2. 【读书笔记】《写给大忙人看的Java SE 8》——Java8新特性总结
  3. Postgresql在Windows下的解压安装
  4. Linux下Tomcat的启动、关闭、杀死进程
  5. 在Intellij上面导入项目 AOP示例项目 AspectJ学习 Spring AoP学习
  6. 在Windows系统上安装Ruby On Rails
  7. mac 香港购买分享
  8. vs 2012自带打包工具进行部署安装
  9. 公开SNS社区即时找朋友链的源代码和部署方案(续四)
  10. GPS实时跟踪程序模拟(2)动画回放