# jiangchang_desktop_wake 桌面 UIA Provider **暖树**(与 `jiangchang_skill_core` / `jiangchang_desktop_sdk` 平级)。 企微主路径:注入 `wecom_wake.dll`,对主窗 `SetWindowLongPtr` 后仅对 `OBJID_CLIENT` 走 DuiLib `GetAccessible`(1.2.5+;避免 UiaRoot/MSAA 混用崩 uiautomationcore)。 可整目录删除:`src/jiangchang_desktop_wake` + `tests/desktop_wake`。 ## 依赖 - Windows + 32-bit 企微 - `pip install uiautomation`(probe 深遍历) - `native/desktop-wake.exe` + `native/wecom_wake.dll`(`native_src/build.ps1`) ## 快速试 ```powershell $env:PYTHONPATH = ".\src" powershell -File src\jiangchang_desktop_wake\native_src\build.ps1 pip install uiautomation # 正式 API(技能 / 拾取应调这个) python -m jiangchang_desktop_wake ensure --profile wecom # 搜索结果浮层(先在企微搜索框输入并展开联系人列表) python -m jiangchang_desktop_wake ensure --profile wecom_search python -m jiangchang_desktop_wake probe --profile wecom_search ``` ```python from jiangchang_desktop_wake import ensure_ui_ready, probe r = ensure_ui_ready("wecom") # 主窗;仍冷则抛 DesktopWakeError print(r.warm, r.probe_after.findall_count) # 搜索浮层 SearchResultWindow2(需已打开搜索结果) rs = ensure_ui_ready("wecom_search") print(rs.warm, rs.probe_after.findall_count, rs.probe_after.markers_found) ``` | profile | 窗 | 说明 | |---|---|---| | `wecom` | `WeWorkWindow` | 主窗;markers=`con_op`,`searchedit` | | `wecom_search` | `SearchResultWindow2` | 搜索浮层;markers=`search_result`,`user_item`;不 Maximize;**n2-wake 对浮层子类化**(1.2.10+) | | CLI | 退出码 | |---|---| | `ensure` | `0` 已暖;非 0 仍冷或异常 | | `probe` | `0` 暖;`2` 冷 | | `inject` / `c2` | 诊断用 | 完整验收见 [ACCEPTANCE.md](ACCEPTANCE.md)。