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://应用程序的窗口风格 ); |
| 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; |
| 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; |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器