将刚才的代码改为可执行的代码
时间: 2024-09-13 14:12:30 浏览: 29
将代码改写成一个完整的可执行脚本,我们需要创建一个消息循环来持续监听`h1`窗口的鼠标事件。这里我们使用`win32ui`库,因为它提供了一个更直观的方式来模拟鼠标操作。注意,这是演示性质的示例,实际上可能会有权限限制和其他条件导致无法直接修改文本内容:
```python
import win32api
import win32con
import win32gui
from comtypes.client import CreateObject
if __name__ == '__main__':
# 获取记事本窗口和子窗口句柄
re = win32gui.FindWindow('Notepad', '111.txt - Notepad')
h = win32gui.FindWindowEx(re, None, 'NotepadTextBox', None)
h1 = win32gui.FindWindowEx(h, None, 'RichEditD2DPT', None)
# 创建ComObj实例并绑定到 RichEdit 控件
richEdit = CreateObject('WScript.Shell.Application').Windows(h1).Document
def move_mouse(x1, y1, x2, y2):
while True:
win32api.SetCursorPos((x1, y1))
win32gui.SendMessage(h1, win32con.WM_MOUSEMOVE, win32con.MK_LBUTTON, (x2, y2))
time.sleep(0.01) # 每秒移动一次
# 初始化鼠标开始位置
iparam = win32api.MAKELONG(93, 150)
iparam1 = win32api.MAKELONG(34, 49)
try:
move_mouse(iparam[0], iparam[1], iparam1[0], iparam1[1])
except Exception as e:
print(f"Error occurred: {e}")
# 当不再需要模拟时,可以移除这个线程或者关闭富文本编辑器
#richEdit.Close()
```
请注意,这段代码仅作为一个演示,实际使用时可能会因为安全策略或者其他原因导致无法成功操作,比如禁止第三方进程对文本框进行修改。而且长时间运行可能会造成资源占用过大。