2 个稳定版本
1.10.2 | 2024 年 8 月 9 日 |
---|---|
1.10.1 | 2024 年 8 月 7 日 |
#265 in 网页开发
224 每月下载量
89KB
2.5K SLoC
x-win
本软件包使您能够轻松获取活动窗口或打开窗口的数组。它在 Microsoft Windows (10, 11)、Linux (带有 X 服务器)、Linux (带有 Gnome < 45) 和 macOS 10.6+ 上运行。
获取当前活动窗口的信息
examples/get_active_window.rs
:
use x_win::{get_active_window, XWinError};
fn main() {
match get_active_window() {
Ok(active_window) => {
println!("active window: {:#?}", active_window);
}
Err(XWinError) => {
println!("error occurred while getting the active window");
}
}
}
响应
:
active window: WindowInfo {
id: 23624,
os: "win32",
title: "● README.md - x-win - Visual Studio Code",
position: WindowPosition {
x: -8,
y: -8,
width: 1936,
height: 1048,
is_full_screen: true,
},
info: ProcessInfo {
process_id: 23624,
path: "C:\\Users\\miniben\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
name: "Code",
exec_name: "Code",
},
usage: UsageInfo {
memory: 129138688,
},
url: "",
}
获取带有信息的打开窗口列表
examples/get_active_window.rs
:
use x_win::{get_open_windows, XWinError};
fn main() {
match get_open_windows() {
Ok(open_windows) => {
println!("open windows: {:#?}", open_windows);
}
Err(XWinError) => {
println!("error occurred while getting open windows");
}
}
}
响应
:
open windows: [
WindowInfo {
id: 23624,
os: "win32",
title: "● README.md - x-win - Visual Studio Code",
position: WindowPosition {
x: -8,
y: -8,
width: 1936,
height: 1048,
is_full_screen: true,
},
info: ProcessInfo {
process_id: 23624,
path: "C:\\Users\\miniben\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
name: "Code",
exec_name: "Code",
},
usage: UsageInfo {
memory: 128770048,
},
url: "",
},
]
从 WindoInfo
获取图标
examples/get_window_icon.rs
:
use x_win::{get_active_window, get_window_icon, XWinError};
fn main() {
match get_active_window() {
Ok(active_window) => match get_window_icon(&active_window) {
Ok(icon_info) => {
println!("icon info: {:#?}", icon_info);
}
Err(XWinError) => {
println!("error occurred while getting the icon info of active window");
}
},
Err(XWinError) => {
println!("error occurred while getting the active window");
}
}
}
响应
:
icon info: IconInfo {
data: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFLElEQVR4Ae3gAZAkSZIkSRKLqpm7R0REZmZmVlVVVVV3d3d3d/fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMdHd3d3dXV1VVVVVmZkZGRIS7m5kKz0xmV3d1d3dPz8zMzMxMovhP8GKf92uvOj7skV+7bHpwUTG7+99/64c/+mN4Xoj/YC/2eb/2qk8cy69MsNXNZzz0JV8KgGm9bj574Uee9sGPeDeeDfEf6LFf+Jvv/aSlv26CLZ7pka/4SjxQW69bnrvwI0//4Ee8G4D4D/Lgz/7Vj7x1Kl/Dc3nkK70iz8+0Glq54+43EP8BHvRZv/oRz5jia3k+HvlKr8QLkkeru8S/06nP+NWfON/0trwAj3ylV+aFQPw7nPz0X/3xC6m344V4xCu+Mi8E4t/gEZ/xi6fuy/LDl1Kvz7/gEa/4KrwQCODUV//Dt5+X3g9g0/7TG+w3ffLHvPh5no9HfMYvnrp9Kr+/Mo/mRfCIV3pVXgh06qv+4dvOi/fnAQoc3GS/4zM+5sV/iQd4xGf84qnbx/j9lfVo/gUFHzx0u/sMHvuKX8ULhja+6u//+Ai9Es/HafvLz33si38CwIM+9Rdf8e4sPzWkb+BfMA+ecG3ke936BW/yD4/4yYMDXjC09ZV//ysH8Ia8AIv0H19zePYzbz9c/0Sabf4Fx4p/7JqOD3ny573pedubj/iJ/QNeMPSIr/r7U7clv7eGx/CCZEsunA2mgRckYP908Sfd98Vv9k08k+2NR/zE/iEvGAJ4xFf9/anbmn9vjR7DC7N3EY72eW4z+fGnw+9955e8+Z/yALY3HvHj+4e8YIgH2P6yv/uRfXhHXpjVEi6dBycA28GPbqt9yF1f+pYXeC62Fw//sf0jXjDEc9n60r/94QP0TrwwbYLdcxyflp+8+xVv+SW8ALYXD//R/SNeMMRz2fz4n/uhw82T78zGNv+SnfQn733KS30JL4Dt+cN/ZH/JC4Z4gM2P+7kfOkzeGYDFFuyc4l+yCT98DD7srk9+yQs8F9vzh//I/pIXDAHc8Ak/e/LsxO+O5sV4oMUW7JzmX9KJfzhmv/e5T3mpP+cBbM8e9sP7K14wdMMn/OzJs6N/d7RejOenn8PxM4kieCEEe8fEJ+x+ykt9K89ke/awH9pf8YKh2Uf/zC+skzflBejkP9g6dcNn7pbZTxl2+Bcs4IdOFD78rk9+qQu2+4f94N6aFwx1H/XTvz+aV+P52BBfePQ1b/1pAMc//69fbl/66WbfxL+gir/fMu998dNe6u8e9oN7a14wNP/In/qGlfWhPIBgb7v47fa++m1+nQfY+dy/OnEk/e4EL86/QGLveNUnHr/pwd/MC4YAZh/xU1+/Nh8GUMXvb8hvufe1b3uR52Pnc//qxKH0uw1enBfBQx78EF4IxL/Bzuf+1YklfO8Ib86/4CEPfigvBOLfofucv/q+Ed6dF+IhD34oLwTi36l+1l9+3yTenRfgwQ95GC8E4j9A/1l/+b4DfAfPx4Mf8jBekDaMt4n/IN1n/uX7jvAdPJcHP+ShPD9tatNyf+91xX+g+hl/8TYTfBdwjGd68EMexgO1aZqWR0ffe+6jb3k/APEfrH7GX7zMZH4LOFZrx4233AJAG6dptTz63nMffcv78WyI/wyf+ucvfc1113210aNLhMdx+O7zH/OgT+F58Y/bubsQq+kGhwAAAABJRU5ErkJggg==",
height: 32,
width: 32,
}
Linux
开发目的需要安装依赖项。
sudo apt install libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxcb-shm0-dev pkg-config build-essential
⚠️警告 需要libc.so.6
⚠️警告 Linux 上不可用恢复 URL
GNOME
GNOME 使用 wayland。
为了恢复数据,您需要安装并激活为运行 GNOME 版本 41 或更高版本的系统设计的扩展(从该版本开始评估已禁用)。
可以使用 x_win::install_extension()
函数安装扩展,该函数将其存储在 ~/.local/share/gnome-shell/extensions/[email protected]
。
执行此函数后,重要的是要 重新启动用户会话 以加载新扩展,然后使用 x_win::enable_extension()
启用它以使用 x-win。
GNOME 发行版。 | 已测试 |
---|---|
Fedora Workstation 39 | ✅ |
Ubuntu 22.04.4 桌面 | ✅ |
Debian 12 桌面 | ✅ |
Darwin
本软件包只能与 darwin 版本 10.6+ 一起使用。
屏幕录制权限是在 macOS 10.15 Catalina 中引入的
macOS 需要您授予屏幕录制访问权限。如果您的项目没有,则标题将为空值。
URLs(仅适用于 Darwin 和 Windows 系统)
对于 macOS 和 Windows,可以获取浏览器窗口的 URL。
Windows
浏览器名称 | 已测试 |
---|---|
firefox | ✅ |
firefox 开发者版本 | ✅ |
google chrome | ✅ |
microsoft edge | ✅ |
opera software - opera | ✅ |
opera software - opera GX | ✅ |
brave | |
vivaldi | |
iron | |
epic | |
chromium | ✅ |
ucozmedia | |
blisk | |
maxthon | |
beaker | |
beaker browser |
macOS
它将使用 AppleScript 获取铬浏览器和 Safari 的信息
目前不支持 Firefox 和 Firefox 开发者版本
浏览器名称 | 已测试 |
---|---|
Safari | ✅ |
Safari 技术预览 | |
Google Chrome | ✅ |
Google Chrome 测试版 | |
Google Chrome 开发版 | |
Google Chrome 金丝雀版 | |
Brave 浏览器 | |
Brave 浏览器 测试版 | |
Brave 浏览器 夜间版 | |
microsoft edge | ✅ |
Microsoft Edge 测试版 | |
Microsoft Edge 开发版 | |
Microsoft Edge 金丝雀版 | |
Mighty | |
Ghost 浏览器 | |
Bookry Wavebox | |
Pushplaylabs Sidekick | |
Opera 软件 - Opera | ✅ |
Opera 软件 - OperaNext | |
Opera 软件 - OperaDeveloper | |
Opera 软件 - OperaGX | ✅ |
Vivaldi |
项目参考
项目灵感
- active-win
- active-win-pos-rs
- 本项目使用 @napi-rs/cli 生成
依赖关系
~0.2–43MB
~670K SLoC