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

2018-07-20 15:29:55 +08:00
 seobishop
就是调用 winapi 接口实现获得当前输入法的候选词列表,无奈对 C 一窍不通,有哪位大大能做的加一下我微信 vx,求帮实现,微信红包伺候。

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

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

@wdlth 这样可以了 多谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/472686

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX