【问题标题】:Can you set WindowTitle in Launch4j where headerType==console?你能在headerType==console的Launch4j中设置WindowTitle吗?
【发布时间】:2014-10-04 01:56:56
【问题描述】:

我有一个 launch4J 配置,其中 headerType=console。

控制台可以很好地显示所有控制台输出。但该控制台窗口的标题始终是可执行启动器的完整路径。有什么方法可以设置该窗口的标题,如果可以,如何设置?

例如,如果我用

创建一个批处理文件
start "This is my Window Title" mylauncher.exe

然后我会得到一个以This is my Window Title为标题的控制台窗口。如何配置 Launch4j 以便不需要批处理文件?

【问题讨论】:

    标签: windows window exe launch4j


    【解决方案1】:

    据我所知,launch4j 中没有设置可以做到这一点。有一个 windowTitle 选项,但文档说它仅适用于 GUI。

    相反,我认为您有几个选择。我假设您只使用 Windows,因为您使用的是批处理和 exe 文件。

    选项:

    1. 修改源为launch4j,添加对Win32 API函数SetConsoleTitle的调用。您基本上想要重新编译 consolehead 部分,然后重建您的可执行文件。他们使用 Dev-Cpp 进行编译。

      有一个类似的项目叫做WinRun4J,它有一个配置控制台标题的选项,它使用这种方法。如果需要,launch4j 所有者可能可以添加此功能,但自己添加它不会太难。我之前修改了launch4j源来修复一个错误,它非常简单。

    2. 编写一个 JNI 库以从您的 java 代码中调用相同的 Win32 函数。见this post

    3. 不要编写自己的 JNI dll,而是使用 JNA library 从 Java 调用 SetConsoleTitle。有关示例用法,请参见 #2 中同一链接中的答案。

    【讨论】:

    • 谢谢@megadan,很好的回答。
    猜你喜欢
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 2013-08-16
    相关资源
    最近更新 更多