繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM