`
lggege
  • 浏览: 372780 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SWT得到调用ActiveX所需的控件标识符

    博客分类:
  • RCP
阅读更多

怎么使用ole,网上别人的代码已经很多了. 下面是说怎么得到ole所需要的ActiveX标识符的方法.

[当然, 网上也有很多文章都是说通过查注册表.]

 

 

       OleFrame oleFrame = new OleFrame(shell, SWT.NONE); // 创建ActiveX控件的容器

       File file = new File("aa.pdf"); // 由于是.pdf文件,自己会弹出系统默认的AdobeReader.

       OleClientSite clientSite = new OleClientSite(oleFrame, SWT.NONE, file); // 创建一个ole嵌入面板

       clientSite.doVerb(OLE.OLEIVERB_SHOW);// 定义类型为显示控件

       System.out.println(clientSite.getProgramID()); // 得到ActiveX控件的唯一标识符

 

 

比如: 上面的代码得到的就是: AcroExch.Document.7

注: 由于我本地安装的是Adobe Reader

分享到:
评论
1 楼 chenhj520 2011-05-25  
我这里测试怎么用报参数无效


   public static void main(String[] args)
    { 
    	 Shell shell = new Shell();
         shell.setText("PDF Viewer");
         shell.setSize(500, 450);
    	OleFrame oleFrame = new OleFrame(shell, SWT.NONE); 
    	 
    	 File file = new File("aa.pdf"); 
    	 OleClientSite clientSite = new OleClientSite(oleFrame, SWT.NONE, file);
    	 clientSite.doVerb(OLE.OLEIVERB_SHOW);
    	 System.out.println(clientSite.getProgramID()); 
    	
    }



我执行后显示
Exception in thread "main" java.lang.IllegalArgumentException: Argument not valid
	at org.eclipse.swt.SWT.error(SWT.java:2318)
	at org.eclipse.swt.SWT.error(SWT.java:2262)
	at org.eclipse.swt.ole.win32.OLE.error(OLE.java:354)
	at org.eclipse.swt.ole.win32.OLE.error(OLE.java:283)
	at org.eclipse.swt.ole.win32.OleClientSite.<init>(OleClientSite.java:170)
	at com.intalgent.pdfviewer.PDFViewer.main(PDFViewer.java:76)



这个是什么原因?

相关推荐

Global site tag (gtag.js) - Google Analytics