1
luzhongqiu 2018-07-20 16:02:39 +08:00
那你应该在 c 吧里求助咯
|
2
qq316107934 2018-07-20 16:21:24 +08:00 via Android
为什么要 winapi 获取而不是解析词典文件呢? python 本身是脚本语言,对这方面支持又不好。
|
3
dongdawang 2018-07-20 16:26:21 +08:00
应该是 IME 相关,你可以去看一下相关 API 的使用,以前用 c#写过点击 button,获取 textbox 中文本的功能。python 我记得也有 win32 的绑定。
|
4
seobishop OP @luzhongqiu python 调用 C,C 的代码网上也能找到些资料,就是拿不过来 python 用
|
5
seobishop OP @qq316107934 无奈其他业务代码都是 python 的,又不想全部换掉。
|
6
seobishop OP @dongdawang 是 ime 的,相关函数都在 windll.imm32 里面,只是我不会用,参数都是 C 的数据类型,跟 python 很不一样
|
7
dongdawang 2018-07-20 17:35:24 +08:00
pywin32,这个是不是你想要的?c#中只需要将 c++中的类型翻译成 c#中对应的类型就可以用了,python 应该一样。
|
8
ysc3839 2018-07-20 19:07:12 +08:00 via Android
能否提供一个 C/C++ 的实现作为参考?
|
9
wdlth 2018-07-20 21:54:59 +08:00 1
WinSDK Inspect UIA
然后再用支持 UIA 的工具比如 pywinauto 去获取 测试了微软拼音可以,某狗因为是自主创新的 UI 获取不了 |
10
lniwn 2018-07-20 21:59:09 +08:00 via Android
|
11
Rheinmetal 2018-07-27 15:23:14 +08:00
@wdlth 请问如何不用找窗口
用 pywinauto 选择特定控件 我在 inspect 里面找到了这个 Name: "Conversion Candidate List" ControlType: UIA_GroupControlTypeId (0xC36A) |
12
wdlth 2018-07-27 20:29:54 +08:00
@Rheinmetal pywinauto 可以通过 connect 连接上相应的进程,你可以去看看它的文档。
|
13
Rheinmetal 2018-07-28 11:31:03 +08:00
@wdlth 看了文档 用 notepad 的例子 选了 uia backend 也找不到控件
|
14
Rheinmetal 2018-07-28 16:46:11 +08:00
pywinauto.findwindows.find_windows(title="CandidateWindow", control_type="Pane",backend="uia")
@wdlth 这样可以了 多谢 |