启动外部程序并等待它结束

2008-04-09 04:28:22来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

如果在你的软件中留下了你的网页地址和邮件地址,你肯定希望人们点击它就会启动浏览器或者电子邮件软件。这其实就是如何启动外部软件的问题,很简单,不是吗?不过,如果我问你,如何启动外部程序并等待它结束,你还能告诉我吗?

其实,这是一个“古老”的话题,在WIN95时代就被讨论过了。不过,既然这么多人不知道,我感觉还是有必要再讨论一下。

一、为什么要启动外部程序

也许,你想让你的程序完成全部的功能。不过,无论从物力还是人力上,你都应养成资源共享的习惯。更好的考虑是,充分利用已有的程序,而让你的程序专注于某一方面的功能。比如说,浏览器负责打开网页,让人们浏览,当遇到下载的任务时,可以交给更专业的下载软件去做。你也可能在你的程序里留下了你的主页和邮箱地址,你希望有人点击它们时就分别启动浏览器和电子邮件。在某些情况下,你需要外部程序处理后,再进行下一步的工作,这时就会遇到启动外部程序并等待它结束的问题。

二、预备知识

启动外部程序我们可以使用函数Winexec、ShellExecute和ShellExecuteEx。我推荐大家使用函数ShellExecute,因为它既灵活,又简单。看看下面的例子,用法就清楚了:

*: 启动一个程序

ShellExecute(Handle,''''open'''',PChar(''''c:\test\app.exe''''),

nil,nil,SW_SHOW);

* 启动记事本 (因为记事本在系统路径下,所以不必写完整的路径名了):

ShellExecute(Handle, ''''open'''', PChar(''''notepad''''),

nil, nil, SW_SHOW);

* 启动记事本并加载一个纯文本文件:

ShellExecute(Handle, ''''open'''', PChar(''''notepad''''),

PChar(''''c:\test\readme.txt'''', nil, SW_SHOW);

* 使用记事本打开一个纯文本文件 (请确定*.txt文件被关联到记事本):

ShellExecute(Handle, ''''open'''', PChar(''''c:\test\readme.txt''''),

nil, nil, SW_SHOW);

* 使用默认浏览器打开网址:

ShellExecute(Handle, ''''open'''', PChar(''''http://www.festra.com/''''),

nil, nil, SW_SHOW);

* 打印一个文件:

ShellExecute(Handle, ''''print'''', PChar(''''c:\test\readme.txt''''),

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:轻松实现DBGrid的多表头

下一篇:谈Delphi编程中“流”的应用--可读写信息在文件中