activex java 控件_swt java 内嵌ActiveX控件
这里用的是SWT/JFace开发application中SWT自带的org.eclipse.swt.ole.win32 包可以支持内嵌OLE和ActiveX。
具体用法如下://创建一个OleFrame做为OLE(或ActiveX)的框架OleFrame oleFrame = new OleFrame(this, SWT.NONE);//创建ActiveX的容器,其中的classID是ActiveX的classid,在注册表中可以找到OleControlSite oleControl = new OleControlSite(oleFrame, SWT.NONE, “classID”);//OleAutomation类用来执行ActiveX中的方法OleAutomation oleAutomation = new OleAutomation(oleControl);//将ActiveX显示在application中oleControl.doVerb(OLE.OLEIVERB_SHOW);调用AcitveX中方法的具体过程:
1、不带参数的方法调用//获取Method Name的ID,Method Name为ActiveX中具体的方法名int[] regspid = oleAutomation.getIDsOfNames(new String[] { "Method Name" });int dispIdMember = regspid[0];//方法调用oleAutomation.invoke(dispIdMember);
2、带参数的方法调用//获取Method Name的ID,Method Name为ActiveX中具体的方法名int[] regspid = oleAutomation.getIDsOfNames(new String[] { "Method Name" });int dispIdMember = regspid[0];//设置方法的具体参数。Variant数组的长度为Method Name方法参数的个数//假设有四个参数Variant[] rgvarg = new Variant[4];rgvarg[0] = new Variant(fileID);rgvarg[1] = new Variant(itdsURL);rgvarg[2] = new Variant(idType);rgvarg[3] = new Variant(reportURL);//方法调用oleAutomation.invoke(dispIdMember, rgvarg);
调用OLE Exemple:Java程序内嵌Word应用程序package test.swt;import java.io.File;import org.eclipse.swt.SWT;import org.eclipse.swt.graphics.Point;import org.eclipse.swt.layout.GridData;import org.eclipse.swt.layout.GridLayout;import org.eclipse.swt.ole.win32.OLE;import org.eclipse.swt.ole.win32.OleClientSite;import org.eclipse.swt.ole.win32.OleFrame;import org.eclipse.swt.widgets.Button;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;import org.eclipse.swt.widgets.Composite;public class ActiveXTest{private Shell sShell = null;private Button button = null;private OleClientSite clientSite;public static void main(String[] args){Display display = Display.getDefault();ActiveXTest thisClass = new ActiveXTest();thisClass.createSShell();thisClass.sShell.open();while (!thisClass.sShell.isDisposed()){ if (!display.readAndDispatch()) display.sleep();} display.dispose();}/*** This method initializes sShell*/private void createSShell(){GridData gridData = new GridData();gridData.horizontalSpan = 2;GridLayout gridLayout = new GridLayout();gridLayout.numColumns = 3;sShell = new Shell();sShell.setText("Shell");sShell.setLayout(gridLayout);sShell.setSize(new Point(800, 600));OleFrame frame = new OleFrame(sShell, SWT.NONE);button = new Button(sShell, SWT.NONE);button.setLayoutData(gridData);button.setText("Save");button.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {public void widgetSelected(org.eclipse.swt.events.SelectionEvent e){clientSite.save(new File("d:/test.docx"),true);}});frame.setSize(800,600);clientSite = new OleClientSite(frame, SWT.NONE,"Word.Document.8");clientSite.setSize(400,400);clientSite.doVerb(OLE.OLEIVERB_SHOW);}}
SWT调用ActiveX简单总结public class SWT_ActivexUtil {private OleFrame _frame;private OleControlSite _site;private OleAutomation _auto;SWT_ActivexUtil(String activexId, OleControlSite site){if(site == null){Shell shell = new Shell();_frame = new OleFrame(shell, SWT.NONE);_site = new OleControlSite(_frame, SWT.NONE, activexId);_auto = new OleAutomation(_site);}else{_site = site;_auto = new OleAutomation(site);; }}public int getID(String name){try {int[] ids = _auto.getIDsOfNames(new String[]{name});if(ids.length>=0)return ids[0];} catch (RuntimeException e) { e.printStackTrace(); }return -1;}public Variant[] createVariants(String[] paras){Variant[] vr = new Variant[paras.length];for(int i=0;i
activex java 控件_swt java 内嵌ActiveX控件相关推荐
- 网页内嵌lodop控件,部分电脑一直提示未安装
网页内嵌lodop控件,部分电脑一直提示未安装 工作中遇到部分电脑的内嵌网页用不了lodop控件 lodop 提供了 C-Lodop 支持ppapi的打印方法. 工作中遇到部分电脑的内嵌网页用不了lo ...
- [转载]裸写一个含内嵌IE控件的窗口
引言 之前也做过一些含内嵌IE控件的东西,只是一直用MFC/ATL等框架,对于里面的原理其实一知半解,只有脱离它们写一遍,才算能真正懂.前不久在写一个SkyDriveClient的时候正好有一个需求, ...
- swt java 内嵌ActiveX控件
这里用的是SWT/JFace开发application中SWT自带的org.eclipse.swt.ole.win32 包可以支持内嵌OLE和ActiveX. 具体用法如下: //创建一个OleFra ...
- MFC基于多文档框架(对话框内嵌office控件(word文档))
office系列以简便.功能强大的特色发展为当今世界上范围最广.用户最多的办公软件,同时也深受码农的喜欢-. MFC项目中嵌入office系列软件也是随处可见的,最早接触内嵌office软件是在几 ...
- java基于eclipse.swt实现内嵌浏览器
注意事项:采用32位jdk和XULRunner1.9.2 win32版本(我曾尝试过64位都失败了,劝各位也别试了) 火狐内核才用注册XULRunner准备用IE的话就不用注册了 准备工作 1准备 e ...
- 谈谈你对java的理解,java是“解释执行”这句话对吗?
谈谈你对java的理解,java是"解释执行"这句话对吗? 先科普下什么是"解释执行"? 什么是"编译执行"? • 解释执行 解释执行时高级 ...
- 一种内嵌P2P的wifi转红外发射神器
IR_SW3型Wifi扇区型红外学习模块 目录 1.控制器特点...2 2. 外形及接口...3 3. Wifi无线组网红外学习介绍...4 3.1. Wifi工作模式...4 3.2 ...
- [java]谈谈你对Java平台的理解
Java特性: 面向对象(封装,继承,多态) 平台无关性(JVM运行.class文件) 语言(泛型,Lambda) 类库(集合,并发,网络,IO/NIO) JRE(Java运行环境,JVM,类库) J ...
- 硅谷数模面向最新一代笔记本电脑推出业界功耗最低、采用内嵌式触摸技术的eDP定时控制器
ANX2403满足市场对当今笔记本电脑显示器超低功耗的需求 加州圣克拉拉--(美国商业资讯)--硅谷数模半导体公司(Analogix Semiconductor, Inc.)今日宣布推出 ANX240 ...
- active控件和java脚本_【学习笔记】在原生javascript中使用ActiveX和插件
什么是插件 现在的浏览器提供了大量的内置功能,但仍然有一些工作无法完成,如播放音频和视频.插件及其扩展浏览器功能就尤为重要. 插件是可下载的应用程序,可以插入到浏览器中,现在有很多不同的插件,常用的有 ...
最新文章
- 水晶报表printmode的ActiveX打印
- JavaWeb的一些理解
- 用mysql随机查询表a10条数据_ES简介
- php 时间 (年,月,星期,天,小时,秒)的查找
- FLV封装格式的分析
- 【英语学习】【医学】【解剖学】Atlas of Human Anatomy (6e) 的目录
- 03-postgresql报错ERROR: operator does not exist: numeric = character varyin
- jquery动画切换引擎插件 Velocity.js 学习01
- php模糊搜索 变量,自定义搜索seo变量{param}字符串
- ASP.NET分类信息站全站制作视频教程5(AJAX+SQLITE+生成静态HTML)
- LINUX创建桌面运行快捷方式
- 公司设备损坏了,怎么处理
- 写给初学者:电气制图规范和图纸识读方法
- URL Schemes 的发展
- Oracle 分页查询方法和效率分析
- 计算机上64位数和32位数,cad中32位和64位的区别是什么?
- python三原色组合白色_为何色光三原色三三相加得到白色,这其中加色原理是如何起作用的?...
- java 登录验证码_java实现登录验证码
- 医学自然语言处理相关资源整理
- SQL Server的简单使用