Files
jiangchang-platform-kit/src/jiangchang_desktop_wake
chendelian 065d341320
All checks were successful
Publish Python Package to Gitea / publish (push) Successful in 26s
feat(desktop-wake): restore SearchResultWindow2 n2-wake without maximize (1.2.10)
Re-enable float subclass warm (2->122 verified locally); keep activate_maximize=false.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 22:07:12 +08:00
..

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)

快速试

$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
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。