[英]Windows: start a new process hidden (no window)
我想执行第3方程序(在我的情况下为VLC),而Windows中不会弹出任何窗口。 我正在将Java程序作为Windows服务运行,但运行正常,但是当我使用Runtime.exec()
启动VLC时,无论我做什么,都会弹出一个窗口。 VLC的命令行参数阻止了GUI,但随后弹出了一个黑色控制台-更好。
因此:知道如何从Java启动外部程序,以便不显示可见窗口吗? (它在Mac OS X中可以正常工作,并且我认为Linux会一样)
我知道有一种方法可以将libVLC
直接集成到Java程序中,但是该选项对我不起作用。
可能有比这更好的解决方案,但这应该可行。
如果安装了Windows脚本(在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的答案的,因为它将允许您隐藏cmd控制台。 您要做的就是创建一个.bat
文件,其中包含start vlc
。
注意:如果使用此脚本执行.bat
文件,则该文件必须自行关闭,并且不会引发导致挂起的错误。 如果这样做,它将一直存在,直到关闭或通过任务管理器将其关闭为止。
与其直接在控制台命令中调用VLC二进制文件, start c:\\vlc.exe
尝试针对该命令调用start
(即, start c:\\vlc.exe
)。
请注意,此调用将立即或多或少地返回(因此,如果您的应用程序依赖于所返回的调用以确定VLC何时终止,则它必须产生其他方式)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.