次を使用してスライドショーが開始または終了するたびに、JACOBを使用してコールバックを取得しようとしています:
public class Test {
public static void main(String[] args) {
ActiveXComponent oApp = new ActiveXComponent("PowerPoint.Application");
Dispatch presentations = oApp.getProperty("Presentations").toDispatch();
Dispatch presentation = Dispatch.call(presentations, "Open", "C:\\Users\\Bob\\Documents\\test.ppt").toDispatch();
new DispatchEvents(oApp, new Handler());
}
}
public class Handler {
public void SlideShowBegin(Variant[] args) {
System.out.println("here");
}
}
ただし、私は少し動けなくなっています。上記の結果は次のとおりです。
GetEventIID: couldn't get IProvideClassInfo
Exception in thread "main" com.jacob.com.ComFailException: Can't find event iid
at com.jacob.com.DispatchEvents.init3(Native Method)
at com.jacob.com.DispatchEvents.<init>(DispatchEvents.java:138)
at com.jacob.com.DispatchEvents.<init>(DispatchEvents.java:99)
at com.jacob.com.DispatchEvents.<init>(DispatchEvents.java:72)
at tester.Test.main(Test.java:28)
誰にもアイデアはありますか?検索はかなり短くなりました。の 4 つの引数コンストラクターを使用してDispatchEvents
、最後の 2 つの引数として "Powerpoint.Application" と powerpoint exe へのフル パスを指定してみましたが、違いはありません。