51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 6240|回复: 16
打印 上一主题 下一主题

DELPHI addin 源代码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-11-8 14:16:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在BC6中编译 但不能通过

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2004-11-8 14:21:27 | 只看该作者
可以告诉我要怎么用上去吗?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2004-11-8 20:47:11 | 只看该作者
传说中的add_in出现了!
楼上通不过去是因为bcb是c语法,而不是pascal语法,delphi add_in所以无法在bcb中编译通过。


说句题外话,据我所知delphi的add_in 通过文件映射的方式实现,和现在网络上流传的delphi_in完全不同,这是通过两种不同的方式实现的!

这里分别代表两种识别控件的方式:
1.你上传的add_in是实现delphi和winrunner之间的桥梁。实现原理是文件映射,那么文件映射是什么呢?

  内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,只是内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而非系统的页文件,而且在对该文件进行操作之前必须首先对文件进行映射,就如同将整个文件从磁盘加载到内存。

  系统往往需要在多个进程之间共享数据,如果数据量小,处理方法是灵活多变的,如果共享数据容量巨大,那么就需要借助于内存映射文件来进行。

下面给出使用内存映射文件的一般方法:

  首先要通过CreateFile()函数来创建或打开一个文件内核对象,这个对象标识了磁盘上将要用作内存映射文件的文件。在用CreateFile()将文件映像在物理存储器的位置通告给操作系统后,只指定了映像文件的路径,映像的长度还没有指定。为了指定文件映射对象需要多大的物理存储空间还需要通过CreateFileMapping()函数来创建一个文件映射内核对象以告诉系统文件的尺寸以及访问文件的方式。在创建了文件映射对象后,还必须为文件数据保留一个地址空间区域,并把文件数据作为映射到该区域的物理存储器进行提交。由MapViewOfFile()函数负责通过系统的管理而将文件映射对象的全部或部分映射到进程地址空间

我们看testsrvr.pas单元中的几段代码
procedure TFormTstSrvr2.OpenMappedFile();
begin

  in_out_file := OpenFileMapping(FILE_MAP_WRITE,FALSE,'DLPH2WR_IO_PARAM') ;
  if (in_out_file = 0 ) then exit ;

  pInOut := MapViewOfFile(in_out_file, FILE_MAP_WRITE, 0, 0, 0);
  if  (pInOut = nil) then
            CloseHandle(in_out_file);

end;

procedure TFormTstSrvr2.CloseMappedFile();
begin
if  (pInOut <>  nil) then  UnmapViewOfFile(pInOut);
  if (in_out_file <> 0 ) then
     CloseHandle(in_out_file);
  in_out_file:=0;
end;

这里就用到了两个函数
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2004-11-8 21:08:45 | 只看该作者
2.网络中流传的delphi_add_in呢
   他是把不能识别的控件映射为标准控件,相当于定义控件为标准控件的方法!
   set_class_map ("BorBtn", "push_button");
   set_record_attr ("push_button","class label", "class_index", "location");

    实现的就是这个操作!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2004-11-15 14:20:36 | 只看该作者
qiang!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2005-2-18 17:11:17 | 只看该作者

怎么把这个东西用上去啊?

???
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2005-3-23 11:23:02 | 只看该作者
pcl2004_27所说的“楼上通不过去是因为bcb是c语法”,请问这里的bcd是何物???
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2005-3-24 12:56:44 | 只看该作者
bcb = borland c++ builder!
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2005-4-2 11:59:24 | 只看该作者
感谢楼主提供的文件和超版的解释
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2005-11-3 16:18:08 | 只看该作者

不懂

这个就是WR中测试DELPHI的插件吗?看完还是不懂 请指点~~谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2006-4-2 12:20:24 | 只看该作者
TO pcl2004_27:
你的说法不准确,这两种方式并没有实质性的差别。
delphi addin的实现原理也不是什么文件映射,
你把它理解的太复杂了
那段代码仅仅是写入标识,获取消息返回值用的
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2006-4-10 10:05:07 | 只看该作者
我已经加入了delphi addin 源代码,可是好多控件还是不能识别,各位能给指点一下吗?
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2006-4-12 13:40:28 | 只看该作者
识别还没有什么难的,关键是识别的级别,如:我有一个自定义按钮,能识别,但也只能是obj_mouse_click方法去点,不能button_press方法去触发,真的是不爽得很。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2006-4-18 10:18:04 | 只看该作者
各位大侠,Delphi控件在试用版的WR中到底要怎么识别啊?
对于TEdit:为什么我用虚拟控件不行;在WinRunner\lib\vbinit中的script文件中添加set_class_map("tedit", "edit"); set_record_attr("tedit", "class attached_text x y",  "MSW_id","location");也不行啊?是不是试用版的WR不支持啊?
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2006-4-19 16:37:18 | 只看该作者
自己的问题还是自己解决啊,原来是在我录制脚本之前没有安装Delphi的插件,,我昨天上午装了Delphi的插件之后,大多数Delphi的控件就可以识别了,呵呵~
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2006-4-26 16:09:28 | 只看该作者
缈 :
     你的DELPHI插件能给我一个吗?感谢!
   
     十分感谢!
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2006-4-29 14:48:04 | 只看该作者

如何加入dephi源代码

如何加入dephi源代码 多谢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-23 01:52 , Processed in 0.081043 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表