Windows下使用SWT呼叫ActiveX控制項

2021-09-20 15:30:09 字數 2456 閱讀 4244

最近因專案需要測試一些activex控制項的功能,使用原生工具笨重且比較慢,錯誤跟蹤也不太方便,決定使用eclipse的swt嘗試一番,最後發現果然比較便捷。這裡根據網上某大神的用例來構建乙個工具類。

package com.***.yyy;

import org.eclipse.swt.swt;

import org.eclipse.swt.ole.win32.oleautomation;

import org.eclipse.swt.ole.win32.olecontrolsite;

import org.eclipse.swt.ole.win32.oleframe;

import org.eclipse.swt.ole.win32.olelistener;

import org.eclipse.swt.ole.win32.variant;

import org.eclipse.swt.widgets.shell;

public class activexutil

public oleframe getframe()

public olecontrolsite getsite()

public oleautomation getauto()

public int doverb(int verb)

activexutil(string activexid, olecontrolsite site, shell shell) else

} public int getid(string name) );

if (ids.length >= 0)

return ids[0];

} catch (runtimeexception e)

return -1;

} public variant createvariants(string paras)

return vr;

} public variant getproperty(string prop) catch (exception e)

return v;

} public void setproperty(string name, string... params)

_auto.setproperty(propid, vs);

} }public void setproperty(string name, variant... params)

public variant execute(string methodname, variant... params)

public variant execute(string methodname)

public void addeventlistener(int eventid, olelistener listener)

public void removeeventlistener(int eventid, olelistener listener)

}

使用工具類的方法如下:

package com.xx.yy;

import org.eclipse.swt.swt;

import org.eclipse.swt.events.selectionadapter;

import org.eclipse.swt.events.selectionevent;

import org.eclipse.swt.layout.rowlayout;

import org.eclipse.swt.ole.win32.ole;

import org.eclipse.swt.ole.win32.oleevent;

import org.eclipse.swt.ole.win32.olelistener;

import org.eclipse.swt.ole.win32.variant;

import org.eclipse.swt.widgets.button;

import org.eclipse.swt.widgets.display;

import org.eclipse.swt.widgets.shell;

public class swtmainwindow

});// 呼叫方法

button button1 = new button(shell, swt.push);

button1.settext("callmethod");

button1.addselectionlistener(new selectionadapter()

}});

// 顯示視窗

shell.setsize(800, 700);

shell.open();

shell.layout();

while (!shell.isdisposed())

} }}

windows下使用gcc呼叫python的問題

用gcc編譯了乙個c 呼叫python的程式,這個程式在vs下是好用的,而且沒有使用vs的任何庫 可是到了gcc下就是無法使用 後來上網查了一下資料才知道,是因為cl與gcc的執行時庫不同。開啟cmd視窗,輸入python就可以看到 python的windows版本是用msc編譯的 所以python...

Windows下使用VS呼叫Caffe 基礎配置

參考 1.遇到缺少dll檔案,尤其是缺少檔名中含 sgd 的檔案,這個問題是因為在安裝boost的時候,沒有選擇靜態鏈結。解決辦法 cmd轉到boost安裝包所在資料夾,用以下命令開啟b2.exe b2.exe stage type complete link static引數參考 2.遇到warn...

windows下使用批處理檔案呼叫python程式

這個隨筆涉及到幾個批處理指令碼得知識點。windows的start命令,啟動另乙個視窗執行指定的程式或命令。windows的call命令,從批處理程式呼叫另乙個程式,直到被呼叫程式退出,再繼續原先的批處理程式 引數 windows,0為shell 本身,1為第1個引數,以此類推 linux,0為sh...