Windows:隐藏新进程(无窗口)

时间:2012-01-20 03:37:21

标签: java windows exec hide vlc

我想执行第三方程序(在我的情况下是VLC),而Windows中没有任何窗口弹出。我正在运行我的java程序作为Windows服务工作正常,但是当我使用Runtime.exec()启动VLC时,无论我做什么,都会弹出一个窗口。 VLC的命令行参数会阻止GUI,但会弹出黑色控制台 - 不会太好。

所以:任何想法如何从Java启动外部程序,以便不显示可见窗口? (它在Mac OS X中工作正常,我认为Linux将是相同的)

我知道有一种方法可以将libVLC直接集成到您的Java程序中,但该选项对我不起作用。

2 个答案:

答案 0 :(得分:1)

可能有一个比这个更好的解决方案,但应该工作。

如果您安装了Windows Scripting(Win98及更高版本的标准版),请将以下行保存为.vbs文件(例如invisible.vbs)。

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

此脚本允许您使用以下命令无形地运行任何.bat文件:

wscript.exe "C:\Path\To\File\invisible.vbs" "C:\Path\To\Another\File\BatFile.bat"

这基于cheeken's回答,因为它允许您隐藏cmd控制台。您所要做的就是创建一个.bat文件,其中包含start vlc

注意:如果使用此脚本执行.bat文件,则必须关闭自身,并且不能抛出导致其挂起的错误。如果是这样,它会一直存在,直到关闭或直到你通过任务管理器关闭它。

答案 1 :(得分:0)

不要直接在控制台命令中调用VLC二进制文件,而是尝试针对该命令调用start(即start c:\vlc.exe)。

请注意,此调用将立即或多或少地返回(因此,如果您的应用程序依赖于返回的调用以确定何时终止VLC,则必须采用其他方式)。