Chinaunix首页 | 论坛 | 博客
  • 博客访问: 518538
  • 博文数量: 135
  • 博客积分: 3568
  • 博客等级: 中校
  • 技术积分: 1942
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-19 17:52
文章分类

全部博文(135)

文章存档

2012年(29)

2011年(41)

2010年(26)

2009年(12)

2008年(9)

2007年(12)

2006年(6)

分类: Java

2012-03-07 23:26:33

本例中使用的是淘宝网密码登陆框控件,虽然它有窗口界面,但这里当做没有界面的进行测试。
(因为,还没有用Jacob实现调用需要依赖该窗口界面的相关属性、方法。
主要跟Windows的消息机制有关,由于该控件没有显示,或没有父容器,所以没有给它建立起消息队列,
所有,就算给他 PostMessage,也不会有效果。)

TestJacob.java
  1. import com.jacob.activeX.ActiveXComponent;
  2. import com.jacob.com.ComThread;

  3. /**
  4.  * 使用Jacob 调用没有窗口界面的ActiveX/COM组件。
  5.  *
  6.  * @author btpka3@163.com
  7.  */
  8. public class TestJacob {

  9.     public static void main(String[] args) {

  10.         ComThread.InitSTA();

  11.         // 支付宝的控件(PS:虽然有图形界面,但是这里先当作没有图形界面的。示例用。)
  12.         ActiveXComponent ax = new ActiveXComponent(
  13.                 "CLSID:{488A4255-3236-44B3-8F27-FA1AECAA8844}");

  14.         // 读取属性
  15.         System.out.println("----------------------- getter ");
  16.         System.out.println("Identity = " + ax.getPropertyAsString("Identity"));
  17.         System.out.println();

  18.         // 设置属性
  19.         System.out.println("----------------------- setter ");
  20.         System.out.println("PasswordMode = "
  21.                 + ax.getPropertyAsBoolean("PasswordMode")); // 先读出原值
  22.         ax.setProperty("PasswordMode", false); // 再设定新值
  23.         System.out.println("PasswordMode = "
  24.                 + ax.getPropertyAsBoolean("PasswordMode")); // 最后再读出新值
  25.         System.out.println();

  26.         // 方法调用
  27.         System.out.println("----------------------- invoke method ");
  28.         // 如果要传递字符串参数
  29.         // Variant strArg = new Variant();
  30.         // strArg.putString("XXX");
  31.         System.out.println("ci1() = " + ax.invoke("ci1"));
  32.         System.out.println();

  33.         // 以下额外一些测试。
  34.         // 该控件提供的一些可以put的属性貌似没有作用
  35.         System.out.println("----------------------- FIXME ");
  36.         System.out.println("----- set TextData ='1111111' ");
  37.         ax.setProperty("TextData", "1111111");
  38.         System.out.println("TextData = " + ax.invoke("TextData"));
  39.         System.out.println("TextValue = " + ax.invoke("TextValue"));
  40.         System.out.println("----- set TextValue='1111111' ");
  41.         ax.setProperty("TextValue", "1111111");
  42.         System.out.println("TextData = " + ax.invoke("TextData"));
  43.         System.out.println("TextValue = " + ax.invoke("TextValue"));

  44.         ComThread.Release();
  45.     }
  46. }

阅读(3269) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~