在java中捕获系统默认编辑器关闭事件

发布于 2024-10-20 06:16:38 字数 548 浏览 3 评论 0原文

我有一个具有以下流程的 Windows 程序:

generated config file -> user edits config file -> use config file

理想情况下,我想启动给定文件类型/扩展名(.cfg、.ini、.txt)的系统默认编辑器,这可以通过 java.awt.Desktop.edit()

但是,由于编辑器启动后程序会继续执行,所以我不知道如何检查用户是否确实再次关闭了编辑器 :\

我已经在许多应用程序中看到过这种情况,尽管大​​多数在 Linux 上并且可能非java。

另外,由于用户是“愚蠢的”,因此从我的应用程序中配置默认​​编辑器太复杂了。使用标准程序可能是可以接受的,例如记事本,它可以确保几乎始终安装在Windows 计算机上。

I have a Windows program with the following flow:

generated config file -> user edits config file -> use config file

Ideally I want to launch the system default editor for the given file type/extension (.cfg, .ini, .txt), which can be done with java.awt.Desktop.edit().

But since the program continues execution once the editor has started, I have no idea how to check that the user actually closed the editor again :\

I have seen this be done in numeous applications, albeit most on Linux and probably non-java.

Also, since users are "stupid", configuring a default editor from within my application is way too complicated. It might be acceptable to use a standard program, e.g. notepad which is ensured to almost always be installed on Windows computers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北笙凉宸 2024-10-27 06:16:38

刚刚找到了记事本解决方案——哦!这很明显:)

使用 Runtime.exec()Process.waitFor()

Process p = Runtime.getRuntime.exec("notepad " + filename);
p.waitFor();

Just figured out the notepad solution -- doh! it was quite obvious :)

Use Runtime.exec() and Process.waitFor():

Process p = Runtime.getRuntime.exec("notepad " + filename);
p.waitFor();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文