V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
seobishop
V2EX  ›  Python

有哪位大大能用 Python 读取输入法候选词列表,付费求!!

  •  
  •   seobishop · 2018-07-20 15:29:55 +08:00 · 3646 次点击
    这是一个创建于 2079 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就是调用 winapi 接口实现获得当前输入法的候选词列表,无奈对 C 一窍不通,有哪位大大能做的加一下我微信 vx,求帮实现,微信红包伺候。

    V:seobishop
    14 条回复    2018-07-28 16:46:11 +08:00
    luzhongqiu
        1
    luzhongqiu  
       2018-07-20 16:02:39 +08:00
    那你应该在 c 吧里求助咯
    qq316107934
        2
    qq316107934  
       2018-07-20 16:21:24 +08:00 via Android
    为什么要 winapi 获取而不是解析词典文件呢? python 本身是脚本语言,对这方面支持又不好。
    dongdawang
        3
    dongdawang  
       2018-07-20 16:26:21 +08:00
    应该是 IME 相关,你可以去看一下相关 API 的使用,以前用 c#写过点击 button,获取 textbox 中文本的功能。python 我记得也有 win32 的绑定。
    seobishop
        4
    seobishop  
    OP
       2018-07-20 16:38:57 +08:00
    @luzhongqiu python 调用 C,C 的代码网上也能找到些资料,就是拿不过来 python 用
    seobishop
        5
    seobishop  
    OP
       2018-07-20 16:40:17 +08:00
    @qq316107934 无奈其他业务代码都是 python 的,又不想全部换掉。
    seobishop
        6
    seobishop  
    OP
       2018-07-20 16:43:50 +08:00
    @dongdawang 是 ime 的,相关函数都在 windll.imm32 里面,只是我不会用,参数都是 C 的数据类型,跟 python 很不一样
    dongdawang
        7
    dongdawang  
       2018-07-20 17:35:24 +08:00
    pywin32,这个是不是你想要的?c#中只需要将 c++中的类型翻译成 c#中对应的类型就可以用了,python 应该一样。
    ysc3839
        8
    ysc3839  
       2018-07-20 19:07:12 +08:00 via Android
    能否提供一个 C/C++ 的实现作为参考?
    wdlth
        9
    wdlth  
       2018-07-20 21:54:59 +08:00   ❤️ 1
    WinSDK Inspect UIA
    然后再用支持 UIA 的工具比如 pywinauto 去获取
    测试了微软拼音可以,某狗因为是自主创新的 UI 获取不了

    lniwn
        10
    lniwn  
       2018-07-20 21:59:09 +08:00 via Android
    Rheinmetal
        11
    Rheinmetal  
       2018-07-27 15:23:14 +08:00
    @wdlth 请问如何不用找窗口
    用 pywinauto 选择特定控件
    我在 inspect 里面找到了这个
    Name: "Conversion Candidate List"
    ControlType: UIA_GroupControlTypeId (0xC36A)
    wdlth
        12
    wdlth  
       2018-07-27 20:29:54 +08:00
    @Rheinmetal pywinauto 可以通过 connect 连接上相应的进程,你可以去看看它的文档。
    Rheinmetal
        13
    Rheinmetal  
       2018-07-28 11:31:03 +08:00
    @wdlth 看了文档 用 notepad 的例子 选了 uia backend 也找不到控件
    Rheinmetal
        14
    Rheinmetal  
       2018-07-28 16:46:11 +08:00
    pywinauto.findwindows.find_windows(title="CandidateWindow", control_type="Pane",backend="uia")

    @wdlth 这样可以了 多谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4861 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 472ms · UTC 09:43 · PVG 17:43 · LAX 02:43 · JFK 05:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.