中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Delphi > 综合文章
使用Delphi启动和关闭外部应用程序
作者:吴淑华 时间:2006-10-05 12:56 出处:ccidnet.com 责编:月夜寒箫
              摘要:使用Delphi启动和关闭外部应用程序

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;

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有