问题需求,需要把指定路径下的txt文件内容逐行发送给QQ好友,默认使用回车键发送,聊天框程序自动获取,不需要我手动输入坐标, 针对此需求用java写一个脚本
时间: 2023-06-19 19:07:02 浏览: 68
以下是一个基于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帐户因此受到损害,我们概不负责。