51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2089|回复: 0
打印 上一主题 下一主题

[原创] jacob调用ocx控件出错

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-12-28 08:29:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近项目要测试控件,用户指定要用jacob。希望高手指点!!!!小弟感激不尽。。。。。。

  1. package jacob;
  2. import com.jacob.activeX.*;
  3. import com.jacob.com.*;
  4. public class MyJacobTest {
  5.     public void initTest() {
  6.         //获得控件id
  7.         ActiveXComponent acomx = new ActiveXComponent("TAXDISK.TaxDiskCtrl.1");
  8.         try {              
  9.       //获得控件对象         
  10.             Dispatch obj = (Dispatch)acomx.getObject();
  11.      //取得属性
  12.             Dispatch a1= Dispatch.get(obj,"a1").toDispatch();
  13.             Dispatch a2 = Dispatch.get(obj,"a2").toDispatch();
  14.             Dispatch a3 = Dispatch.get(obj,"a3").toDispatch();
  15.             Dispatch a4 = Dispatch.get(obj,"a4").toDispatch();
  16.             Dispatch a5 = Dispatch.get(obj,"a5").toDispatch();
  17.             Dispatch a6 = Dispatch.get(obj,"a6").toDispatch();
  18.             
  19.             Dispatch b1 = Dispatch.invoke(a1,"getTxx",Dispatch.Get,new Object[]{"A1"},new int[1]).toDispatch();
  20.             Dispatch b2 = Dispatch.invoke(a2,"getTxx",Dispatch.Get,new Object[]{"A2"},new int[1]).toDispatch();
  21.             Dispatch b3 = Dispatch.invoke(a3,"getTxx",Dispatch.Get,new Object[]{"A3"},new int[1]).toDispatch();
  22.             Dispatch b4 = Dispatch.invoke(a4,"getTxx",Dispatch.Get,new Object[]{"A4"},new int[1]).toDispatch();
  23.             Dispatch b5 = Dispatch.invoke(a5,"getTxx",Dispatch.Get,new Object[]{"A5"},new int[1]).toDispatch();
  24.             Dispatch b6 = Dispatch.invoke(a6,"getTxx",Dispatch.Get,new Object[]{"A6"},new int[1]).toDispatch();
  25.              //设置属性值
  26.             Dispatch.put(b1, "a1","1");
  27.             Dispatch.put(b2, "a2","888");
  28.             Dispatch.put(b3, "a3","777");
  29.             Dispatch.put(b4, "a4","9999");
  30.             Dispatch.put(b5, "a5","7777");
  31.             Dispatch.put(b6, "a6","88888");
  32.             //取属性值
  33.                 Variant result=Dispatch.call(b1,"a1");
  34.                 System.out.println(result);            
  35.         } catch (RuntimeException e) {
  36.             System.out.println("*****1*******"+e.toString()+"\n"));
  37.             e.printStackTrace();
  38.             System.out.println("*****2*******"+e.toString()+"\n");
  39.         }
  40.     }
  41.     public static void main(String[] args) {
  42.         ComThread.InitSTA();
  43.         MyJacobTest mt = new MyJacobTest();
  44.         mt.initTest();
  45.         ComThread.Release();
  46.     }
  47. }
复制代码
我的jdk1.4 jacob1.15 dll(放到了指定目录 system32 jre/bin)为什么运行时总是出错
com.jacob.com.ComFailException: Can't map name to dispid:a1
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-15 20:09 , Processed in 0.066889 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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