选择显示字体大小

使用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;


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

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   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons