当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 上次介绍了如何在Delphi中使用发送消息的方式控制外部程序,一开始我在自己的项目中也确实是这么做的,但是后来遇到了这么一个问题:我所调用的程序,会在执行一段处理过程中,将结果显示到一个ListView中,那么为了知道我发出的命令,到底被那个程序执行后结果如何,我就必须监视ListView中的内...
 

 

    摘要:上一次在csdn发失败了,再试试看句柄泄漏最终造成系统的网络完全瘫痪!下面是 delphi6 vcl 标准类库 sockets 单元中 tbasesocket 类的一段代码:procedure tbasesocket.close;begin if factive then begin{$ifdef linux} errorcheck(libc.__close(fsocket));{$endif} ......
 ·ado command 命令的执行     »显示摘要«
    摘要:ado command 命令的执行下面的函数实现 ado command 命令的执行。// --------------------------------------------------------------------------------// 参数:// padocmd: tadocommand; adocommand 组件// pcexec : string; 命令字符串// va......


再谈后台调用外部程序的完美实现

上次介绍了如何在delphi中使用发送消息的方式控制外部程序,一开始我在自己的项目中也确实是这么做的,但是后来遇到了这么一个问题:

首先,listview的窗口handle我当然是有了,然后取得listview中的item个数,我发现有这么个函数可以使用:listview_getitemcount(),它在commctrl模块中有定义,其实只是对sendmessage的一个封装而已,同样的,该模块中还有另一个函数:listview_getitemtext(),使用它可以取得指定行处的item文字. 【程序编程相关:Delphi操作Wrod的几个知识点

我所调用的程序,会在执行一段处理过程中,将结果显示到一个listview中,那么为了知道我发出的命令,到底被那个程序执行后结果如何,我就必须监视listview中的内容,察看最后出现的结果文字是什么,从而知道到底是成功还是失败了.那么,我的想法是,不断的查询listview中items的个数,并且当个数大于0的时候,取出最后一条item(就是最后加入的结果描述),然后取得其中的文字,通过判断字符串,就可以知道结果了. 【推荐阅读:扫雷外挂的设计与实现(三)

要说明为什么,首先让我们来看一下listview_getitemtext()函数到底做了什么(另外还有listview_getitemtexta与listview_getitemtextw这两个函数,暂时不用去理它们): 【扩展信息:扫雷外挂的设计与实现(二)

那么只要在我的程序中使用这两个函数就可以了咯?很抱歉,我用实际经历告诉你:这样将会导致外部程序的崩溃!!

function listview_getitemtext(hwndlv: hwnd; i, isubitem: integer;

  psztext: pchar; cchtextmax: integer): integer;


...   下一页
    摘要: 开发web应用系统通常都会遇到报表打印问题。简单应用可利用ie的页面打印功能,利用html标签控制格式来实现。但复杂的业务型应用系统,报表不仅是组成应用的重要部分,还常常是相当复杂的。现在很多应用系统都要求提供自定义报表的功能——即客户可以自行设计、修改报表。在c/s结构系统中,报表问题有很多成熟的解决方法。如delphi开发工具不仅自带有报表控件,还可以利用第三方控件来......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE