微信自动输入(解放双手)


  自用从 定义发送函数开始改就行了,前面几个部分直接复制进一个py文件就可以。

导包

  先导入一堆有用没用的包

import pyautogui as auto
import time
import pyperclip
import win32clipboard
import win32con
from PIL import Image
from io import BytesIO

定义文字复制函数

  xy是全局变量,所以函数输入里面没有。

def fuzhi(text):
	"""
	将指定文字text复制到屏幕上(x,y)坐标处
	"""
    auto.dragTo(x, y, duration=0.3)  # 为了延长点击时间
    pyperclip.copy(text.lstrip())
    auto.hotkey('ctrl', 'v')
    auto.hotkey('enter')
    time.sleep(interval)

def fuzhi2(text):
	"""
	将大段文字text按行复制到屏幕上(x,y)坐标处
	"""
    lst = text.splitlines()
    for s in lst:
        fuzhi(s,x,y)

定义图片复制类

  这个类我是网上的好多篇文章看过以后缝合起来的…所以他的原理是什么其实不重要,抄就完了。

class Clipboard():
  """
  模拟Windows设置剪贴板
  """
  # 读取剪贴板
  @staticmethod
  def getText():
    win32clipboard.OpenClipboard()
    d = win32clipboard.GetClipboardData(win32con.CF_UNICODETEXT)
    win32clipboard.CloseClipboard()
    return d

  # 设置剪贴板内容
  @staticmethod
  def setText(aString):
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardData(win32con.CF_UNICODETEXT,aString)
    win32clipboard.CloseClipboard()

  @staticmethod
  def send_msg_to_clip(type_data, msg):
      win32clipboard.OpenClipboard()
      win32clipboard.EmptyClipboard()
      win32clipboard.SetClipboardData(type_data, msg)
      win32clipboard.CloseClipboard()

  @staticmethod
  def paste_img(file_img):
      image = Image.open(file_img)
      output = BytesIO()
      image.save(output, 'BMP')
      data = output.getvalue()[14:]
      output.close()
      Clipboard.send_msg_to_clip(win32clipboard.CF_DIB, data)

定义图片复制函数

  根据上面那个不重要的类,调用一下paste_img函数,然后再用pyautogui粘贴到当前鼠标位置,按回车发送消息。

def fuzhi_img(name):
    Clipboard.paste_img(name)
    time.sleep(1)
    auto.hotkey('ctrl','v')
    auto.hotkey('enter')

定义发送函数(这里根据需求改)

  把str1str2和图片路径换成自己想要发送的就可以用了。

def send():
    str1 = "这里可以放一行文字"
    fuzhi(str1) # 一行文字用fuzhi

    str2 = """这里很多行文字"""
    fuzhi2(str2) # 多行文字用fuzhi2

    fuzhi_img("这里放图片路径") # 粘贴图片用fuzhi_img

最后的main

  如果不想在terminal输入xyinterval的话可以直接进行赋值。因为是使用alt+tab进行应用跳转,需要确保第一个应用界面是IDE,第二个应用界面是微信或者qq等发消息的软件。

  xy的值可以使用任何截图工具从屏幕左上角截到微信消息框,看一下横纵的像素值是多少。如果是(700,1000)可以直接赋值x = 1000y = 700.

if __name__ == '__main__':
    x, y = input("请输入微信文本框坐标:").split()
    x = int(x)
    y = int(y)
    interval = int(input("请输入文本发送时间间隔(s):"))
	# 直接赋值
	# x = 1000
	# y = 700
	# interval = 10 # 10秒发一行文本

    auto.hotkey('alt','tab') # 切换到微信界面
    auto.moveTo(x,y) # 定位到微信输入框
    auto.dragTo(x,y, duration=0.3)  # 为了延长点击时间
    send() # 发送send函数里的内容
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以使用Java编写一个微信自动回复脚本,以下是一个简单的示例: ```java import java.awt.*; import java.awt.event.KeyEvent; public class WeChatAutoReply { public static void main(String[] args) throws AWTException, InterruptedException { Robot robot = new Robot(); robot.setAutoDelay(500); // 打开微信 robot.keyPress(KeyEvent.VK_WINDOWS); robot.keyRelease(KeyEvent.VK_WINDOWS); robot.delay(1000); robot.keyPress(KeyEvent.VK_W); robot.keyRelease(KeyEvent.VK_W); robot.delay(1000); robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); robot.delay(3000); // 定位到搜索框并输入好友名字 String friendName = "好友的名字"; for (char c : friendName.toCharArray()) { robot.keyPress(Character.toUpperCase(c)); robot.keyRelease(Character.toUpperCase(c)); robot.delay(100); } robot.delay(1000); robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); robot.delay(3000); // 输入回复内容并发送 String replyMessage = "自动回复内容"; for (char c : replyMessage.toCharArray()) { robot.keyPress(Character.toUpperCase(c)); robot.keyRelease(Character.toUpperCase(c)); robot.delay(100); } robot.delay(1000); robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); // 关闭微信 robot.delay(3000); robot.keyPress(KeyEvent.VK_ALT); robot.keyPress(KeyEvent.VK_F4); robot.keyRelease(KeyEvent.VK_ALT); robot.keyRelease(KeyEvent.VK_F4); } } ``` 请注意,这只是一个示例,实际上,编写一个完整的微信自动回复脚本可能会更加复杂,并且可能需要使用一些第三方库来实现。此外,自动回复可能违反微信的使用条款,请确保你的使用符合相关规定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失眠软糖12

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值