8 个版本
0.2.3 | 2024年6月19日 |
---|---|
0.2.2 | 2024年6月12日 |
0.2.1-alpha.2 | 2024年5月29日 |
0.2.0 | 2024年4月23日 |
0.1.1 | 2023年11月20日 |
#168 在 图像
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 请求示例代码。
库
- https://crates.io/crates/icns:读取和写入 icns 文件,转换为 PNG 格式。
依赖项
~5–15MB
~175K SLoC