从Windows服务运行Excel

时间:2014-04-04 10:13:38

标签: java windows excel windows-services windows-server-2008


我使用Apache Common Daemon(Windows Server 2008)将Java应用程序安装为Windows服务 我需要在我的应用程序中运行excel.exe命令,所以我设置我的服务以便能够与桌面交互(通过选中服务&#39的属性中的登录选项卡中的框)。 这样,当我调用ProcessBuilder的start()方法时,我看到显示here的弹出窗口。

有没有办法避免这种情况?

我的目的是将我的java应用程序作为服务运行并并行运行多个excel.exe实例,以便同时处理多个.xlsm文件,但我不想以任何方式进行交互。

我已经阅读了有关会话0隔离的this文章,所以我想知道是否真的可以启动许多excel.exe(或任何其他" GUI命令")来自WinServer 2008上的Windows服务?

谢谢。

1 个答案:

答案 0 :(得分:0)

这是我迄今为止找到的解决方案(现在似乎正在工作)
根据zapl的建议,为了直接使用脚本执行我的宏,我创建了一个.vbs。
然后我修改了运行excel的用户以匹配用于启动服务的用户(感谢this
在此之后,我改变了我的ProcessBuilder:

ProcessBuilder pb = new ProcessBuilder("cscript.exe", excelPathArg....)

到此:

ProcessBuilder pb = new ProcessBuilder("cmd", "/C", "cscript.exe", excelPathArg....

现在,即使用户启动服务已注销,ProcessBuilder也似乎被正确触发。

我会尽快提供更多详细信息

相关问题