系统集成 API
与操作系统交互的全局能力,不绑定特定窗口。包括协议注册、全局热键、剪贴板、鼠标位置、打印等。
若你只关心基础工具能力(版本、路径、语言、显示器、配置读写),请看 工具 API。
协议与文件关联
自定义 URL 协议(register_url_scheme / unregister_url_scheme)
用途:在系统里登记自定义 URL 协议(例如 myapp://open/...),使用户在浏览器或其它应用里点开这类链接时,能启动你的 exe 并把 URL 传进来。卸载或关闭功能时可 unregister 取消登记。
int32_t register_url_scheme(const char* scheme);
int32_t unregister_url_scheme(const char* scheme);
须已成功 JadeView_init,库要知道你的 exe 路径。若开了单实例,第二次启动可能通过 second-instance 把命令行交给第一次打开的进程,便于只处理一次协议 URL。
文件类型关联(register_file_association / unregister_file_association)
用途:让用户双击某种扩展名(如 .mydata)时,用当前应用打开。friendly_name 会出现在「打开方式」里给人看的名字。
int32_t register_file_association(const char* extension, const char* friendly_name);
int32_t unregister_file_association(const char* extension);
扩展名可带或不带前面的点,内部会规范化。同样需要已完成初始化以关联到正确 exe。
全局输入
全局热键(register_global_hotkey / unregister_global_hotkey)
用途:注册全局快捷键(焦点不在你的窗口上也能响应),例如全局呼出主窗口、静音。按下后库会发事件 global-hotkey(负载为 JSON,含热键 id 与键值),你在 jade_on 里处理即可。
uint32_t register_global_hotkey(uint32_t modifiers, uint32_t vk);
int32_t unregister_global_hotkey(uint32_t hotkey_id);
| 参数 | 说明 |
|---|---|
modifiers | 组合键,使用 Windows 的 MOD_CONTROL、MOD_SHIFT 等按位或。 |
vk | 主键虚拟键码,与 Win32 一致。 |
| 返回值 | 含义 |
|---|---|
> 0 | 热键 id,注销时传给 unregister_global_hotkey。 |
0 | 注册失败;若当前发行版里该功能尚未接好,可能一直为 0(以实际 DLL 为准)。 |
事件字段说明见 事件类型。
鼠标位置
获取鼠标位置(get_cursor_position)
注意
v2.2 开始支持。
获取当前鼠标屏幕坐标(全局,不绑定窗口)。
int32_t get_cursor_position(char* buffer, int buffer_size);
- 参数:
bufferchar*- 输出缓冲区;buffer_sizeint- 缓冲区大小 - 返回值:
1= 成功,buffer 写入 JSON{"x":0,"y":0};0= 失败
注意
仅 Windows 平台可用。
剪贴板
注意
v2.2 开始支持。
依赖新增 arboard crate。
读取剪贴板文本(clipboard_read_text)
注意
v2.2 开始支持。
int32_t clipboard_read_text(char* buffer, int buffer_size);
- 参数:
bufferchar*- 输出缓冲区;buffer_sizeint- 缓冲区大小 - 返回值:
1= 成功,0= 失败
写入剪贴板文本(clipboard_write_text)
注意
v2.2 开始支持。
int32_t clipboard_write_text(const char* text);
- 参数:
textstring- 要写入的文本 - 返回值:
1= 成功,0= 失败
打印
注意
v2.2 开始支持。
获取打印机列表(jade_get_printer_list)
注意
v2.2 开始支持。
获取系统打印机列表,返回 JSON 数组字符串。
int32_t jade_get_printer_list(char* buffer, int buffer_size);
- 参数:
bufferchar*- 输出缓冲区;buffer_sizeint- 缓冲区大小(字节) - 返回值:
>0= 打印机数量,buffer 中为 JSON 数组;0= 失败或无打印机
输出示例:
["Microsoft Print to PDF","HP LaserJet Pro MFP M428fdw","Fax"]
注意
仅 Windows 平台可用。