【发布时间】:2022-01-18 07:32:42
【问题描述】:
我正在编写一个 Rust 应用程序,因为它相当小,而且似乎没有任何稳定的 UI 框架,所以我使用 println! 和诸如此类的输入/输出使其在控制台中运行。但是,由于该程序旨在供人们在从 Internet 下载后直接使用(由于其用例),他们可能只是双击它,而不是导航到终端中的下载目录并从那里运行它.
这是一个问题,因为在 Linux 上,它在后台运行,等待输入,看起来好像不起作用。在 Windows 上,Rust 程序默认在 CMD 中打开。 (事实上,我的问题的许多搜索结果都是关于禁用这种行为 - 与我想要的完全相反!)。
那么有没有可能以某种方式让我的应用程序在系统的默认终端中打开?我首选的方法是以某种方式嵌入可执行文件以在终端中打开(类似于 MinGW 上的-mconsole 编译器标志)。否则是否有可能检测到它在后台并将其分叉到终端中?如果这不可能,那么是否至少可以检测到应用程序没有在终端中运行并抛出一个消息框告诉用户在终端中运行?
我的应用是跨平台的,但我可以在一个操作系统上编写有条件编译的代码。
【问题讨论】: