1
zictos 2023-02-14 12:16:44 +08:00
问题:python 获取 windows 窗口句柄并发送文本到窗口的输入框
chatgpt:要向窗口的输入框发送文本,可以使用 win32gui 模块中的 SendMessage 函数,将 WM_SETTEXT 消息发送给输入框。 以下代码演示了如何使用 FindWindowEx 函数查找 Windows 笔记本应用程序的编辑框,并向其中发送文本: import win32gui import win32con notepad_handle = win32gui.FindWindow("Notepad", None) edit_handle = win32gui.FindWindowEx(notepad_handle, None, "Edit", None) win32gui.SendMessage(edit_handle, win32con.WM_SETTEXT, None, "Hello, world!") |
2
sakura6264 2023-02-14 12:16:58 +08:00
打开,全选,复制,粘贴
|
3
hxy100 2023-02-14 13:28:22 +08:00
研究下 AutoHotKey ,捕捉窗口控件,模拟发送文本或者模拟鼠标点击,你想要的,他都有;
https://wyagd001.github.io/zh-cn/docs/Tutorial.htm ----- 如果需求比较简单,不涉及查找窗口句柄和查找控件句柄的操作,你甚至使用 VBS 脚本的 Wscript.sendKeys 就可以。 |
4
MindMindMax 2023-02-14 14:57:07 +08:00 1
package main
import ( "fmt" "github.com/JamesHovious/w32" ) func main() { // 获取窗口句柄 hwnd := w32.FindWindowS(nil, "窗口标题") if hwnd == 0 { fmt.Println("窗口未找到") return } // 获取窗口输入框句柄 editHwnd := w32.FindWindowExS(hwnd, 0, "Edit", "") if editHwnd == 0 { fmt.Println("输入框未找到") return } // 发送输入文本 text := "Hello World" w32.SendMessage(editHwnd, w32.WM_SETTEXT, 0, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(text)))) } |
5
FYFX 2023-02-14 15:38:56 +08:00
Pulover's Macro Creator 你可以试试用这个直接录制一下动作,然后按照你想要的修改,反正这个生成的就是 autohotkey 的脚本
|
6
kealm 2023-02-14 16:09:59 +08:00
输入框是聚焦的吗?如果是聚焦的,一般是写到剪贴板,然后触发一次 Ctrl + C 之类的快捷键粘贴。
|