java实现循环定时,指定微信好友(群)发送文本消息(且文本随机),另附qq指定好友聊天窗口句柄

本文介绍了使用Java通过模拟键盘输入实现循环定时向微信好友或群组发送随机文本消息的方法,并提供了如何利用命令行操作退出云服务器。同时,还补充了如何获取并打开QQ指定好友聊天窗口的技术细节,要求对方QQ在线服务开启。
摘要由CSDN通过智能技术生成

原理简单:robot类模拟键盘输入,发送指定内容到剪切板来完成粘贴
循环定时,两个个线程休眠
退出云服务器命令
输入query session命令,输出结果中会显示当前登录的session
tscon 当前登录的session(rdp开头每次都会变) /dest:console
代码:
主类:

package ui;

import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.KeyEvent;

/**
 * @author feng
 * @date 2020/5/22 - 16:16
 * @Description 微信好友定时群发  原理就是创建Rebot对象实现键盘的输出
 */
public class WeChatSend {
   
    public static void main(String[] args) {
   
        //休眠7个小时
        try {
   
            Thread.sleep(7*60*60*1000);
        } catch (InterruptedException e) {
   
            e.printStackTrace();
        }

        //记录执行次数
        int count = 0;
        while (true) {
   
            try {
   
                Thread.sleep(24*60*60* 1000); //设置暂停的时间 5 秒
                searchMyfriendsAndSend();
            } catch (Exception e) {
   
                e.printStackTrace();
            }
            count++;
            System.out.println("成功运行" + count + "天。。。。。。");
        }
    }

    /**
     * @Description 模拟Chrl + F 搜索微信好友
     * @author feng
     * @date 2020/5/22 - 16:27
     */
    public static void searchMyfriendsAndSend() {
   
        // 创建Robot对象
        Robot robot = null;
        try {
   
            robot = new Robot();
        } catch (AWTException e) {
   
            e.printStackTrace();
        }
        //打开微信
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_ALT);
        robot.delay(1000);
        ro
实现这个功能需要使用第三方库进行窗口管理和OCR识别,以下是一个基于Python的示例代码,使用了pywin32和pytesseract库: ```python import win32gui import win32api import win32con import time import pytesseract import numpy as np import cv2 def get_wechat_text(): # 获取微信窗口句柄 wechat_handle = win32gui.FindWindow('WeChatMainWndForTChatEdit', None) if not wechat_handle: print('未找到微信窗口') return None # 切换到微信窗口 win32gui.ShowWindow(wechat_handle, win32con.SW_RESTORE) win32gui.SetForegroundWindow(wechat_handle) # 获取微信输入框句柄 text_handle = win32gui.FindWindowEx(wechat_handle, 0, 'RichEdit20W', None) if not text_handle: print('未找到微信输入框') return None # 获取微信输入框位置 rect = win32gui.GetWindowRect(text_handle) x, y = rect[0], rect[1] width, height = rect[2] - x, rect[3] - y # 截取微信输入框界面并进行OCR识别 screenshot = np.array(win32gui.GetWindowDC(text_handle)).reshape(height, width, 4) screenshot = screenshot[:, :, :3] # 去除alpha通道 screenshot = cv2.cvtColor(screenshot, cv2.COLOR_BGR2GRAY) # 转灰度图 screenshot = cv2.resize(screenshot, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC) # 放大2倍 text = pytesseract.image_to_string(screenshot, lang='chi_sim') return text.strip() if __name__ == '__main__': while True: text = get_wechat_text() if text: print(text) time.sleep(1) ``` 需要注意的是,这种方法并不是完全可靠的,因为OCR识别的准确率有限,有可能会出现识别错误的情况。同时,微信的安全策略可能会对这种窗口管理操作进行限制。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值