如何从java运行vbscript函数?
从java代码中,我可以使用此代码运行vbscript如何从java运行vbscript函数?,java,vbscript,powerpoint,Java,Vbscript,Powerpoint,从java代码中,我可以使用此代码运行vbscript Runtime.getRuntime().exec("wscript C:\\ppt\\test1.vbs "); 但是想知道如何从java调用vbscript的方法。例如在test1.vbs中 Set objPPT = CreateObject("PowerPoint.Application") objPPT.Visible = True Set objPresentation = objPPT.Presentation
Runtime.getRuntime().exec("wscript C:\\ppt\\test1.vbs ");
但是想知道如何从java调用vbscript的方法。例如在test1.vbs中
Set objPPT = CreateObject("PowerPoint.Application")
objPPT.Visible = True
Set objPresentation = objPPT.Presentations.Open("C:\ppt\Labo.ppt")
Set objSlideShow = objPresentation.SlideShowSettings.Run.View
sub ssn1()
objPPT.Run "C:\ppt\Labo.ppt!.SSN"
End sub
如何从java中只调用ssn1()方法。否则我们可以从java代码中运行power point的宏。请帮助 我不太了解visual basic脚本方面,但是如果您可以将visual basic脚本作为COM对象公开,那么您可以通过使用框架(例如com4j)从java访问它的方法:
这应该会让您感到高兴:)转到WScript部分: 这是我的想法。。。在vbscript文件中,使脚本侦听命令行参数,该参数将指定要调用的方法。然后,在Java中,只要想调用文件中的特定方法,就只需要使用这个参数
否则,如果您想在java中访问powerpoint,则需要像在vbscript中一样访问其API,如果vbscript可以,这是可能的,但方法/语法可能会改变。PowerPoint应用程序对象的.Run方法允许您在任何打开的演示文稿或加载的加载项中调用任何公共子例程或函数。本文回答了OP的问题: 否则我们可以从java代码中运行power point的宏。请帮助 (但没有解决最初的vbscript问题) 还有JACOB库,它代表Java COM桥,您可以在这里找到: 使用它,您可以调用Excel、Word、Outlook、PowerPoint应用程序对象模型方法 我用Excel试过了,但没有用PowerPoint。(这只是一些示例代码,您可能希望使其更面向对象。) 注: 对于Excel,至少要运行以调用VBA宏/子例程,必须满足以下几点:
public class Excel {
private static ActiveXComponent xl = null;
public static Init() {
try {
ComThread.InitSTA();
xl = ActiveXComponent.connectToActiveInstance("Excel.Application.14");
// 14 is Office 2010, if you don't know what version you can do "Excel.Application"
if (xl==null) {
// code to launch Excel if not running:
xl = new ActiveXComponent("Excel.Application");
Dispatch.put(xl, "Visible", Constants.kTrue);
}
}
catch (Exception e) {
ComThread.Release();
}
}
public static String Run(String vbName) {
// Variant v = Dispatch.call(xl, "Run", vbName); // using string name lookup
Variant v = Dispatch.call(xl, 0x103, vbName); // using COM offset
// return Dispatch.get(this, "Name").getString();
return v.getString();
}
public static Variant Run1p(String vbName, Object param) {
// Variant v = Dispatch.call(xl, "Run", vbName, param);
return Dispatch.call(xl, 0x103, vbName, param);
// return Dispatch.get(this, "Name").getString();
}
public static Worksheet GetActiveWorksheet () {
// Dispatch d = xl.getProperty("ActiveSheet").toDispatch();
Dispatch d = Dispatch.get(xl, 0x133).toDispatch ();
return d; // you may want to put a wrapper around this...
}
}