#桌面应用程序 #已安装 #跨平台 #系统 #查找 #运行 #检索

bin+lib 应用程序

用于查找已安装应用程序的跨平台库

8 个版本

0.2.3 2024年6月19日
0.2.2 2024年6月12日
0.2.1-alpha.22024年5月29日
0.2.0 2024年4月23日
0.1.1 2023年11月20日

#168图像

MIT 许可证

70KB
1.5K SLoC

apps-rs

此crate用于

  • 获取系统上已安装应用程序的列表
  • 获取最前面的应用程序
  • 获取运行中的应用程序列表

平台

  • Mac
  • Linux
  • Windows

用法

use applications::{AppInfoContext, AppInfo};

fn main() {
    let mut ctx = AppInfoContext::new();
    ctx.refresh_apps().unwrap(); // must refresh apps before getting them

    let apps = ctx.get_all_apps();
    println!("Apps: {:#?}", apps);

    let frontmost_app = ctx.get_frontmost_application().unwrap();
    println!("Frontmost App: {:#?}", frontmost_app);

    let running_apps = ctx.get_running_apps();
    println!("Running Apps: {:#?}", running_apps);
}

如何?

如何在每个平台上搜索可用的桌面应用程序?

Linux

桌面应用程序指定在以 .desktop 结尾的文件中。使用 echo $XDG_DATA_DIRS 查看这些桌面文件可能存在的路径列表。

这些 .desktop 文件是 toml 格式。使用 toml crate 解析它们。

可以使用 Exec 启动应用程序,并且 Icon 字段包含应用程序图标。

MacOS

最简单的方法是在 /Applications 文件夹中进行搜索。应用程序图标是 .icns 格式。Apple硅Mac现在可以运行iOS应用程序。iOS应用程序图标是 .png 格式。

可以使用 system_profiler 命令获取已安装的应用程序。

使用 system_profiler SPApplicationsDataType 命令获取完整的应用程序列表。

Windows

https://crates.io/crates/winreg 可能很有用。向 ChatGPT 请求示例代码。

依赖项

~5–15MB
~175K SLoC