From f6fb2ab97fc23552bec5997bb80a7a28a1028ab0 Mon Sep 17 00:00:00 2001
From: HuangHai <10402852@qq.com>
Date: Sat, 17 Jan 2026 07:21:21 +0800
Subject: [PATCH] 'commit'
---
.idea/vcs.xml | 1 -
Apps/AiTeJiYiChong/Opener.py | 18 +++++++++-
Apps/TeLaiDian/Opener.py | 29 +++++++++++++--
Apps/XinDianTu/Opener.py | 34 ++++++++++++------
.../__pycache__/Opener.cpython-310.pyc | Bin 4466 -> 5200 bytes
.../__pycache__/ReadImageKit.cpython-310.pyc | Bin 36864 -> 36864 bytes
Apps/YeLiTe/Opener.py | 29 +++++++++++++--
Tools/T8_InstallFastInputIME.py | 4 +++
8 files changed, 97 insertions(+), 18 deletions(-)
create mode 100644 Tools/T8_InstallFastInputIME.py
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index f245aa7..9661ac7 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,7 +1,6 @@
-
\ No newline at end of file
diff --git a/Apps/AiTeJiYiChong/Opener.py b/Apps/AiTeJiYiChong/Opener.py
index 03a0d06..55f3260 100644
--- a/Apps/AiTeJiYiChong/Opener.py
+++ b/Apps/AiTeJiYiChong/Opener.py
@@ -84,8 +84,19 @@ async def open_mini_program():
await asyncio.sleep(2)
- # 4. 输入搜索内容
logger.info("输入搜索内容: 艾特吉易充")
+ try:
+ d.set_input_ime(True)
+ except Exception as e:
+ logger.warning(f"启用 FastInputIME 失败: {e}")
+
+ try:
+ search_bar_x, search_bar_y = int(w * 0.4), int(h * 0.08)
+ d.click(search_bar_x, search_bar_y)
+ await asyncio.sleep(1.5)
+ except Exception as e:
+ logger.warning(f"点击搜索框以获取焦点失败: {e}")
+
try:
logger.info("尝试输入文字: 艾特吉易充")
d.send_keys("艾特吉易充")
@@ -101,6 +112,11 @@ async def open_mini_program():
await asyncio.sleep(3)
+ try:
+ d.set_input_ime(False)
+ except Exception as e:
+ logger.warning(f"恢复系统输入法失败: {e}")
+
# 5. 点击小程序
logger.info("点击搜索结果中的小程序...")
# 这里由于没有模板,先使用坐标点击作为第一版的测试逻辑 (通常第一个结果在 50%, 18%)
diff --git a/Apps/TeLaiDian/Opener.py b/Apps/TeLaiDian/Opener.py
index 599d390..357f135 100644
--- a/Apps/TeLaiDian/Opener.py
+++ b/Apps/TeLaiDian/Opener.py
@@ -21,17 +21,40 @@ async def open_mini_program():
d.app_start("com.tencent.mm", stop=True)
await asyncio.sleep(5)
- # 2. 点击搜索按钮 (坐标适配大部分微信版本)
logger.info("点击搜索按钮...")
w, h = d.window_size()
d.click(int(w * 0.84), int(h * 0.08))
await asyncio.sleep(2)
- # 3. 输入搜索内容
logger.info("输入搜索内容: 特来电")
- d.send_keys("特来电")
+ try:
+ d.set_input_ime(True)
+ except Exception as e:
+ logger.warning(f"启用 FastInputIME 失败: {e}")
+
+ try:
+ search_bar_x, search_bar_y = int(w * 0.4), int(h * 0.08)
+ d.click(search_bar_x, search_bar_y)
+ await asyncio.sleep(1.5)
+ except Exception as e:
+ logger.warning(f"点击搜索框以获取焦点失败: {e}")
+
+ try:
+ d.send_keys("特来电")
+ except Exception as e:
+ logger.warning(f"直接 send_keys 失败: {e}")
+ try:
+ d(focused=True).set_text("特来电")
+ except Exception as e2:
+ logger.error(f"文字输入彻底失败: {e2}")
+
await asyncio.sleep(3)
+ try:
+ d.set_input_ime(False)
+ except Exception as e:
+ logger.warning(f"恢复系统输入法失败: {e}")
+
# 4. 点击搜索结果中的第一个小程序
logger.info("点击搜索结果中的小程序...")
# 这里的坐标可能需要根据实际情况调整,先参考 YeLiTe 的实现
diff --git a/Apps/XinDianTu/Opener.py b/Apps/XinDianTu/Opener.py
index 99ffc90..d1d9364 100644
--- a/Apps/XinDianTu/Opener.py
+++ b/Apps/XinDianTu/Opener.py
@@ -123,16 +123,25 @@ async def open_mini_program():
# 点击后给予一定的加载时间
await asyncio.sleep(2)
- # 2. 直接尝试输入内容 (既然已经看到了搜索界面,我们不再进行严格的特征校验)
+ # 2. 确保输入法和焦点正常,然后输入搜索内容
logger.info("准备输入搜索内容: 新电途")
- # 启用 u2 快速输入法 (使用更新的方法名)
- # d.set_input_ime(True)
+ # 尝试启用 FastInputIME,提升 send_keys 的成功率
+ try:
+ logger.info("尝试启用 FastInputIME 输入法...")
+ d.set_input_ime(True)
+ logger.info("FastInputIME 已启用.")
+ except Exception as e:
+ logger.warning(f"启用 FastInputIME 失败: {e}")
- # 尝试点击搜索框位置以确保获取焦点 (通常在顶部居中偏左)
- # search_bar_x, search_bar_y = int(w * 0.4), int(h * 0.08)
- # d.click(search_bar_x, search_bar_y)
- # await asyncio.sleep(1.5) # 稍微多等一会儿让输入法准备好
+ # 再点击一次搜索框,确保真正拿到输入焦点
+ try:
+ search_bar_x, search_bar_y = int(w * 0.4), int(h * 0.08)
+ logger.info(f"再次点击搜索框以获取焦点: ({search_bar_x}, {search_bar_y})")
+ d.click(search_bar_x, search_bar_y)
+ await asyncio.sleep(1.5)
+ except Exception as e:
+ logger.warning(f"点击搜索框以获取焦点失败: {e}")
# 直接发送按键
try:
@@ -151,12 +160,17 @@ async def open_mini_program():
logger.info("set_text 指令已发送.")
except Exception as e2:
logger.error(f"文字输入彻底失败: {e2}")
- # 最后的尝试:切换回默认输入法(有时 FastInputIME 会卡住)
- # d.set_fastinput_ime(False)
- # d.send_keys("新电途")
await asyncio.sleep(3)
+ # 尝试恢复系统默认输入法,避免后续人工操作受影响
+ try:
+ logger.info("尝试恢复系统默认输入法...")
+ d.set_input_ime(False)
+ logger.info("已恢复系统默认输入法.")
+ except Exception as e:
+ logger.warning(f"恢复系统默认输入法失败: {e}")
+
# # 兜底点击:点击搜索结果的第一项位置 (x=50%, y=18%)
# res_x, res_y = int(w * 0.5), int(h * 0.18)
# logger.info(f"尝试坐标点击第一项: ({res_x}, {res_y})")
diff --git a/Apps/XinDianTu/__pycache__/Opener.cpython-310.pyc b/Apps/XinDianTu/__pycache__/Opener.cpython-310.pyc
index e31577d49acc38462cc4854bd6124f681375213c..e6e78bc777862996a680a694e3020016233339eb 100644
GIT binary patch
delta 1805
zcmah~U2NM_6!vwT#&Ld{bY*m1*QP&fo3dr4^nvYRh|!istRQU<(;_6}#$IaHI^o(@
zo62oE3gfAz!VED=wRUQ!O+u8d6%|B+hduCw!~-w*nIxSw35h4fB;Z^-UD67Mt$Xgt
zx#xc8=exQ7z3r#&U^)=sD0td`cw7GZ$i3hr23h7~<}HwKy3e7KdDs0AbhD-lWWMGd
zkjFi3{mrli*MdlR1(C;+s*hOfeuG-)B}E`?9PuRo&$=A7qtiCU%|k4u#3
znfA5Q8o_9Ia1?k
zyT;ZE^i;jQq0Ipi8L@pHt<+XQb(EnFm!VDr6j$z6NIYtA`?|%=aCWy~Cf&M7?e@_8
z%^S{jR?41o((iI2ulU4nqS@I*_r;vq)0m!0_7(JMhHQ-IY&62uu_sI&KVPQGH|-~s
z7(T;qGeQnU%<$Q?`75;9Or5Bttc4ArdY3nmxj;pG%?a*X)Nl6renba8^7rRD;m8%f
zTHe{XURc~HeS9Y}B&b?k$>>^qcrdc_omqH)y|{Tj7K`c6g6p2u!uEYm)_u``@m+QOpqiWv6r}NhxludZOPI4f
zW9d{1$iU=y;zlCKpCIAaWkJ`{x
zMg&z(Iu?tGzdrPaLr^`Mi
pHl3DNnoLR=O-?ISwUKWS?ln8YC!e{@vNWoL9+F-++q^K3{{hm!6|VpQ
delta 1028
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
delta 6348
zcmbVQ3v?9K8D?fTo5v;?AiM%0Axi=)kOTr26nR5LUP97}Lu50%JK0^>-C6F;@~)xy
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