gpt4 book ai didi

c++ - 是否有非 Java 的跨平台方式来启动特定文件类型的关联应用程序?

转载 作者:可可西里 更新时间:2023-11-01 16:30:02 26 4
gpt4 key购买 nike

首先,I found a couplejava specific questions和答案。我正在寻找更多“ native ”但跨平台的解决方案,使用 C、C++、某种 shell 脚本,或者就我而言,Qt。

所以问题是,是否有标准的、跨平台的方法以编程方式打开某些文件类型的关联应用程序。或者至少找出是否有关联的应用程序并能够找到并启动它们?

我所说的跨平台是指 Windows、OSX 和 Linux (gnome/kde)。用例是有一个数据库,其中存储的文件作为 blob,将在三个不同的目标上读取。

最佳答案

我不知道有什么跨平台的方式。

在 Windows 中,有 start 命令,它将启动关联的默认应用程序。 (例如 start foo.doc 将启动默认的 Word 文档编辑器,start http://StackOverflow.Com/ 默认的网络浏览器和 start mailto:mail@ example.com 默认邮件应用。)

在 OS X 中有 open 命令,它做同样的事情。

Linux 只是一个操作系统内核。操作系统内核对“文件类型”或“MIME 类型”或“相关应用程序”或类似的东西一无所知。因此,对于 Linux,这样的事情根本不存在

Freedesktop Group 有一个 specification for an xdg-open command ,适用于所有兼容 Freedesktop 的图形桌面(无论是 Linux、FreeBSD、NetBSD、OpenBSD、DragonflyBSD、OpenSolaris 还是其他)。然而,它显然不能保证在非 Freedesktop 系统上工作,而且当然不能保证在非图形系统上工作。

在这三种情况下,这是一个命令行应用程序,而不是 C 或 C++ API,但您显然可以通过 system 调用它。

关于c++ - 是否有非 Java 的跨平台方式来启动特定文件类型的关联应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1480971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com