博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 调用windows的COM组件举例(使用JACOB)
阅读量:6428 次
发布时间:2019-06-23

本文共 1494 字,大约阅读时间需要 4 分钟。

 (转自这里)

 

最近公司需要做一个效果,开发一个程序能在程序运行时打开microsoft office的相关软件,实时写入,然后能关闭,你能看到数据写入的效果。如下图:

发现用java写程序的话需要通过JACOB来调用windows 的com组件,关于jacob网上资料也不多,提供个官网大家自己看看吧:https://sourceforge.net/projects/jacob-project/

下面是一个java调用的小例子,效果是弹出一个消息窗口。

 

需要引入的包如下:

Jacob_1.16-M1.jar

下载地址如下:http://pan.baidu.com/s/1b2KCSQ

主程序:JaxbTest.java

 

package com.jacob.burns;import com.jacob.activeX.ActiveXComponent;public class JaxbTest {    public static void main(String[] args) {        ComThread.InitSTA();// 启动线程        // 注册表中取得注册MyOcx.dll的ProgId,或clsid。        ActiveXComponent com = new ActiveXComponent("MyOcx.MyDialog");//在MyOcx中搜索ProgID = s 'MyOcx.MyDialog.1'        // Dispatch对象看成是对Activex控件的一个操作        Dispatch disp = com.getObject();        // 假设MsgBox是MyOcx.dll中的一个方法        Dispatch.call(disp, "MsgBox", "HelloWorld_Windows弹窗!");        ComThread.Release();// 结束进程    }}

 

在执行程序之前,先执行下这个dll文件,MyOcx.dll,dll下载地址在: http://pan.baidu.com/s/1nuDn9up,执行方式是:

打开cmd命令窗口,输入:regsvr32 D:/MyOcx.dll(我的MyOcx.dll文件在D盘根目录下。),执行完成后,会弹出框提示已经注册完dll文件的信息。对于dll文件,你可以通过这个工具打开查看:eXeScope 下载地址:http://pan.baidu.com/s/1bpsPzWz

打开查看MyOcx.dll文件,其中关注下这个CLSID值,如下图:

CLSID的值为:8BE91377-DC16-45EF-8047-AD13354E755E

在windows的注册表中搜这个CLSID,其中打开注册表的方式是:在windows键+R,然后输入”regedit”,弹出注册表窗口,然后,Ctrl+F,输入CLSID的值:8BE91377-DC16-45EF-8047-AD13354E755E,回车,等待片刻后,会定位到你要搜索的内容。如下图:

红色圈起来的后两个最后都有ProgID,查看后,发现右边表格的数据列一个是MyOcx.MyDialog,一个是MyOcx.MyDialog.1,这两个值在上面的java程序中出现的位置可以相互替换, 

接下来就可以执行java程序了,执行结果是:如图:

 

转载于:https://www.cnblogs.com/guchunchao/p/9809213.html

你可能感兴趣的文章
删除N天前的M(天)个目录 、删除N天前最后修改的文件 ForFiles, dos command 批处理命令cmd/bat...
查看>>
PostgreSQL 的 语法分析的理解(五)
查看>>
[转载]Visual Studio 2010敏捷利剑:详解Scrum
查看>>
Java Collection: List、Set、 Map、 HashMap、 Hashtable、 Vector
查看>>
T-SQL查询进阶--流程控制语句
查看>>
备份Toad中保存的数据库连接用户名和密码
查看>>
ASP.NET中 Repeater 的使用前台绑定
查看>>
微信公众平台模拟群发技术
查看>>
C语言学习之指针详解
查看>>
学习使用Bing Maps Silverlight Control(一):准备和新建
查看>>
什么是Scrum
查看>>
nginx负载均衡的5种策略
查看>>
90%人都不知道:SVN 和 Git 的一些误解和真相
查看>>
防火墙配置十大任务之九,验证防火墙的运行
查看>>
【linux】浅谈Linux下的 find 指令
查看>>
CentOS 7 使用kubeadm 部署 Kubernetes
查看>>
我的友情链接
查看>>
透视美国大数据爆发全景
查看>>
java学习第一天1.2
查看>>
清空输入缓冲区的方法
查看>>