4 个版本
0.2.1 | 2022年3月11日 |
---|---|
0.2.0 | 2022年3月11日 |
0.1.1 | 2022年3月11日 |
0.1.0 | 2022年3月11日 |
#1981 在 异步
11KB
171 行
windows-async-rs
使用 windows crate 为 windows 应用程序提供的简单异步执行器。
示例
// Show Desktop App list example (using WinRT "Windows.Inventory.InstalledDesktopApp")
use windows::core::{
Result,
};
use windows::System::Inventory::{
InstalledDesktopApp,
};
async fn show_installed_desktop_app() -> Result<()> {
let vec = InstalledDesktopApp::GetInventoryAsync()?.await?;
for i in 0..vec.Size()? {
let item = vec.GetAt(i)?;
println!("Id: {:?}", item.Id()?);
println!("DisplayName: {:?}", item.DisplayName()?);
println!("Publisher: {:?}", item.Publisher()?);
println!("DisplayVersion: {:?}", item.DisplayVersion()?);
println!();
}
Ok(())
}
fn main() {
if let Err(e) = windows_async::block_on(show_installed_desktop_app()) {
println!("error: {:?}", e);
}
}
lib.rs
:
使用 windows crate 为 windows 应用程序提供的简单异步执行器。
示例
// Show Desktop App list example (using WinRT "Windows.Inventory.InstalledDesktopApp")
use windows::core::{
Result,
};
use windows::System::Inventory::{
InstalledDesktopApp,
};
async fn show_installed_desktop_app() -> Result<()> {
let vec = InstalledDesktopApp::GetInventoryAsync()?.await?;
for i in 0..vec.Size()? {
let item = vec.GetAt(i)?;
println!("Id: {:?}", item.Id()?);
println!("DisplayName: {:?}", item.DisplayName()?);
println!("Publisher: {:?}", item.Publisher()?);
println!("DisplayVersion: {:?}", item.DisplayVersion()?);
println!();
}
Ok(())
}
fn main() {
if let Err(e) = windows_async::block_on(show_installed_desktop_app()) {
println!("error: {:?}", e);
}
}
依赖
~129MB
~2M SLoC