问题需求,需要把指定路径下的txt文件内容逐行发送给QQ好友,默认使用回车键发送,聊天框程序自动获取,不需要我手动输入坐标,不能用win32gui包, 针对此需求用python写一个脚本
时间: 2023-06-19 20:07:13 浏览: 46
可以使用PyAutoGUI和pyperclip这两个库来实现该需求。以下是一个简单的脚本示例:
```python
import os
import time
import pyautogui
import pyperclip
# 设置等待时间,确保QQ窗口完全打开
time.sleep(5)
# 设置需要发送的文件路径
file_path = 'C:/path/to/file.txt'
# 读取文件内容
with open(file_path, 'r') as f:
content = f.readlines()
# 将内容逐行复制到剪贴板,并发送到QQ聊天框
for line in content:
pyperclip.copy(line)
pyautogui.hotkey('ctrl', 'v')
pyautogui.press('enter')
time.sleep(0.1) # 等待0.1秒,防止发送过快被QQ识别为垃圾消息
# 发送完成后,关闭文件
f.close()
```
请确保文件路径正确,并且QQ聊天框已经打开并且聚焦。此脚本可能需要根据不同的操作系统和QQ版本进行微调。
相关问题
问题需求,需要把指定路径下的txt文件内容逐行发送给QQ好友,默认使用回车键发送,聊天框程序自动获取,不需要我手动输入坐标, 针对此需求用java写一个脚本
以下是一个基于Java的脚本,可以读取指定路径下的txt文件,并将其逐行发送给QQ好友。请注意,这个脚本需要使用QQ的Java API,以便发送消息。
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef;
public class QQSender {
public static void main(String[] args) {
String qqWindowName = "QQ"; // QQ窗口的标题
String txtFilePath = "C:/text.txt"; // 要发送的txt文件路径
ArrayList<String> messages = readTextFile(txtFilePath); // 读取txt文件内容
Pointer qqWindow = getWindowPointer(qqWindowName); // 获取QQ窗口句柄
sendMessages(qqWindow, messages); // 发送消息
}
// 读取txt文件内容到ArrayList
private static ArrayList<String> readTextFile(String filePath) {
ArrayList<String> messages = new ArrayList<String>();
try {
BufferedReader reader = new BufferedReader(new FileReader(new File(filePath)));
String line;
while ((line = reader.readLine()) != null) {
messages.add(line);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
return messages;
}
// 获取窗口句柄
private static Pointer getWindowPointer(String windowName) {
WinDef.HWND hwnd = User32.INSTANCE.FindWindow(null, windowName);
return hwnd.getPointer();
}
// 发送消息
private static void sendMessages(Pointer qqWindow, ArrayList<String> messages) {
for (String message : messages) {
// 将消息内容和回车键组合成字符串
String msg = message + "\n";
// 将字符串转换为char数组
char[] chars = msg.toCharArray();
// 循环发送每个字符
for (char c : chars) {
User32.INSTANCE.SendMessage(qqWindow, User32.WM_CHAR, new WinDef.WPARAM(c), null);
}
}
}
}
```
请注意,这个脚本需要使用JNA库,以便访问Windows API。您需要将以下依赖项添加到您的项目中:
```xml
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.7.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>5.7.0</version>
</dependency>
```
此外,您需要下载QQ的Java API并将其添加到您的项目中。您可以在以下链接中找到它:
https://github.com/tuling123/funChat/tree/master/lib
请注意,由于QQ的Java API是第三方开发的,因此使用它可能会有一些风险。如果您的QQ帐户因此受到损害,我们概不负责。
问题需求,需要把txt文件内容逐行发送给QQ好友,默认使用回车键发送,聊天框程序自动获取,不需要我手动输入坐标,针对此需求用python写一个脚本
好的,你可以使用PyAutoGUI和win32gui模块来实现自动发送文件内容给QQ好友。下面是一个简单的示例代码:
```python
import time
import pyautogui
import win32gui
# 打开txt文件并读取内容
with open('test.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
# 打开QQ并定位到好友聊天窗口
qq_window = win32gui.FindWindow(None, 'QQ') # 根据窗口标题查找QQ窗口
win32gui.SetForegroundWindow(qq_window) # 将QQ窗口置于最前
time.sleep(1) # 等待QQ窗口响应
# 逐行发送文件内容
for line in lines:
pyautogui.typewrite(line.strip()) # 输入一行内容
pyautogui.press('enter') # 模拟回车键发送
time.sleep(0.1) # 等待发送完成
```
在运行代码前,需要先安装PyAutoGUI和win32gui模块。你可以使用以下命令进行安装:
```
pip install pyautogui
pip install pywin32
```
需要注意的是,PyAutoGUI模块会模拟鼠标和键盘操作,因此在运行代码时需要将QQ窗口置于最前并保持聊天框的焦点。同时,为了避免发送过快导致发送失败,需要在每次发送之后加入一定的等待时间。