发送字符串 - SendString
函数简介
向指定窗口发送文本数据。该函数会模拟键盘输入,将指定的文本字符串发送到目标窗口。支持发送普通文本、特殊字符(如制表符、换行符等)以及组合键。
接口名称
SendString
DLL调用
int SendString(long ola, long hwnd, string string)
参数定义:
ola
(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。hwnd
(长整型数): 目标窗口的句柄。窗口必须处于激活状态才能成功接收文本。string
(字符串): 要发送的文本数据。支持以下特殊字符:\t
: 制表符\n
: 换行符\r
: 回车符
示例:
// 向窗口发送普通文本
int ret = SendString(ola, hwnd, "Hello World");
if (ret == 1) {
printf("文本发送成功\n");
} else {
printf("文本发送失败\n");
}
// 向窗口发送带格式的文本
ret = SendString(ola, hwnd, "用户名:admin\n密码:123456\n");
if (ret == 1) {
printf("带格式文本发送成功\n");
}
// 使用特殊字符模拟按键操作
ret = SendString(ola, hwnd, "{CTRL}A{DELETE}"); // 全选并删除
if (ret == 1) {
printf("按键操作执行成功\n");
}
COM调用
int SendString(long hwnd, string string)
参数定义:
hwnd
(长整型数): 目标窗口的句柄。窗口必须处于激活状态才能成功接收文本。string
(字符串): 要发送的文本数据。支持特殊字符,详见DLL调用部分的说明。
示例:
# 向窗口发送普通文本
ret = ola.SendString(hwnd, "Hello World")
if ret == 1:
messagebox("文本发送成功")
else:
messagebox("文本发送失败")
# 向窗口发送带格式的文本
ret = ola.SendString(hwnd, "用户名:admin\n密码:123456\n")
if ret == 1:
messagebox("带格式文本发送成功")
# 使用特殊字符模拟按键操作
ret = ola.SendString(hwnd, "{CTRL}A{DELETE}") # 全选并删除
if ret == 1:
messagebox("按键操作执行成功")
返回值
整型数:
- 0: 发送失败
- 1: 发送成功
注意事项
- 使用此函数前,请确保目标窗口已经激活(获得焦点)
- 某些应用程序可能会拦截或修改发送的文本,导致实际输入与预期不符
- 对于某些特殊窗口,可能需要先使用 SetWindowText 函数设置窗口标题
- 如果需要发送剪贴板内容,建议使用 SendPaste 函数
- 发送大量文本时,建议适当添加延时,以确保文本能够被正确接收