手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

使用Delphi启动和关闭外部应用程序

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  Delphi与Windows平台紧密结合,编译代码快速高效。作为一种可视化的面向对象开发工具,Delphi可以帮助程序员更轻松、更快速地编写各种Windows应用程序。而且通过编程可以方便地调用其它语言编写的动态库或应用程序,并在不需要时关闭这些外部程序。这一点对许多编程人员非常有用,例如,在采用Delphi进行软件开发的同时,可能需要调用以前采用其它工具开发的应用程序,以免再次重新编写代码,或者需要调用Windows中的记事本和计算器等工具,以便在程序运行过程中记录信息或进行计算等。

  在Delphi中,通过调用一组API函数是可以比较轻松地完成上述要求的。下面本文将以一个实际的例子详细地介绍一下实现外部应用程序启动和关闭的具体方法和步骤:

  1. 创建一个应用程序,在应用程序的窗体上添加两个Tbutton组件和一个TopenDialog组件。设置其中一个Tbutton组件的Caption属性为“启动外部应用程序”、另一个Tbutton组件的Caption属性为“关闭已开启的外部应用程序”。设置TopenDialog组件的Filter属性为“可执行文件(*.exe)|*.exe”。

  2. 实现外部应用程序的启动功能

  ⑴ 要启动外部应用程序,可以通过调用API函数WinExec来实现。该函数用于运行指定的应用程序。下面介绍一下该函数所需的参数和返回值:

UINT WinExec(

 LPCSTR lpCmdLine, file://命令行指针

 UINT uCmdShow file://应用程序的窗口风格

);

  如果成功,返回值大于31。否则可能返回下列结果:

  0 系统内存或资源不足

  ERROR_BAD_FORMAT 该*.EXE文件无效

  ERROR_FILE_NOT_FOUND 没找到指定的文件

  ERROR_PATH_NOT_FOUND 没找到指定路径

  ⑵ 通过编写标题为“启动外部应用程序”组件的OnClick事件,来实现外部应用程序的启动,代码如下:

procedure TForm1.Button1Click(Sender: TObject);

var

str: string; file://存储指定的应用程序文件名

begin

if opendialog1.Execute then file://选择要调用的外部可执行程序

begin

str := opendialog1.FileName; file://获取可执行文件名

winexec(PChar(str), SW_SHOWNORMAL); file://启动指定的可执行程序

end;

end;

  3. 关闭已开启的外部应用程序

  ⑴ 通过调用两个API函数,可以实现该功能。这两个函数分别为:

  ① FindWindow函数 该函数用于查找与指定的类名和窗口名相匹配的高层窗口,如果查找成功,返回非0值,否则返回0。

  ② SendMessage函数 此函数向一个或多个窗口发送指定的消息。在此通过发送WM_CLOSE消息来关闭指定的外部应用程序。

  ⑵ 通过编写标题为“关闭已开启的外部应用程序”组件的OnClick事件,来关闭已开启的外部应用程序。代码如下:

procedure TForm1.Button2Click(Sender: TObject);

var

hWndClose: HWnd; file://存储指定的外部应用程序窗口句柄

str: String; file://存储指定的外部应用程序的窗口名

begin

str := InputBox('提示','请输入应用程序名:',''); file://获取要关闭的应用程序窗口名

if str <> '' then begin

file://根据窗口名查找要关闭的窗口句柄

hWndClose := FindWindow(nil, PChar(str));

if hWndClose <> 0 then file://如果查找成功,则发送消息,关闭指定的窗口

SendMessage(hWndClose,WM_CLOSE,0,0);

else file://否则,给出提示信息

ShowMessage('没找到指定的应用程序,所以无法关闭!');

end;

end;

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS