Deixe-me colocá-la na cama às doze, posso resolver facilmente com Python

Aqui está a coisa: ontem à noite, minha namorada me pediu para empurrá-la para a cama ao meio-dia.
foto
Mas, estou com muito sono para sobreviver... eh? É importante para uma namorada dormir?
foto
No entanto, não ouso desobedecer às ordens da minha namorada...
foto
Mas não me pode faltar o sono!

O que nós devemos fazer então? É hora de trazer o Python para a mesa! Gosta de lembrar de colecionar, seguir, curtir.

A versão completa do código, obtida no final do artigo

Estreia do Python

Desta vez, vamos fazer um programa para enviar automaticamente o WeChat, e enviar uma mensagem para minha namorada às 12 horas da madrugada, o que pode ser considerado um cumprimento da obrigação de um namorado.

instalar e importar

Precisamos de dois módulos: apscheduler, pyautogui

Atalho Windows+r para abrir a caixa de controle de execução, digite cmd, digite a linha de comando, digite:

pip install apscheduler
pip install pyautogui

importar:

import pyautogui
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler # 阻塞当前进程的调度器
# blocking类型调度器会阻塞当前进程,若你想要后台运行的调度器,可以使用以下代码:
# from apscheduler.schedulers.background import BackgroundScheduler

pyautogui

Primeiro vamos implementar o envio automático de mensagens

pyautogui é uma biblioteca muito poderosa que pode operar mouse e teclado. Vamos usá-lo para completar a automação do computador.

Vamos fazer algumas configurações básicas primeiro:

pyautogui.PAUSE = 1 # 设置每一步操作的间隔(秒),可防止操作太快

Em seguida, efetuamos login no WeChat e minimizamos.

Em seguida, colocamos o mouse no ícone da barra de tarefas do WeChat, executamos a seguinte instrução, obtemos as coordenadas do cursor neste momento e retornamos um objeto Point:

print(pyautogui.position()) # 打印坐标,Point(x=148, y=879)
icon_position = pyautogui.position() # Point(x=148, y=879)

Abra o WeChat, selecione a janela de conversa da namorada, coloque o mouse na caixa de entrada, e também obtenha as coordenadas do cursor, a fim de travar o foco na caixa de entrada para facilitar a entrada posteriormente.
foto

print(pyautogui.position()) # 打印坐标,Point(x=174, y=751)
entry_position = pyautogui.position() # Point(x=174, y=751)

Em seguida, o programa de controle clica nesses dois pontos em sequência:

pyautogui.click(icon_position) # 默认左键单击
# pyautogui.click(148, 879)
pyautogui.click(entry_position)
# pyautogui.click(174, 751)

Depois de abrir o WeChat e bloquear o foco, começamos a inserir texto.

Há duas maneiras de inserir texto:

  • pyautogui.typewrite(['o', 'n', 'e', 'enter'])

Passe uma lista no método, onde cada elemento é uma única letra ou uma chave especial

  • pyautogui.typewrite('You can type multiple letters in this way')

Passe uma string, mas não imprima letras e teclas especiais ao mesmo tempo.

Nenhum desses dois métodos pode inserir diretamente o chinês, portanto, você só pode confiar no seu método de entrada para inserir o chinês.

pyautogui.typewrite([*list('zhengzai '), *list('jinxing '), 'shift', *list('pyautogui'), 'shift', *list('shiyan '), 'enter'], 0.1) # 第一个参数是输入文本,第二个是输入每个字符的间隔时间

Para tornar nossa operação mais humana, vamos adicionar o código para mover o mouse:

pyautogui.moveTo(icon_position, duration=2) # duration为执行时长,可选
pyautogui.click(icon_position)
pyautogui.moveTo(entry_position, duration=2)
pyautogui.click(entry_position)
pyautogui.typewrite([*list('zhengzai '), *list('jinxing '), 'shift', *list('pyautogui'), 'shift', *list('shiyan '), 'enter'], 0.1) # 第二个参数为按下每一个字母的间隔,可选

Dê uma olhada no efeito:
foto
Claro, se você quiser inserir muito conteúdo e for muito problemático, poderá fazê-lo copiando e colando:

import pyperclip

pyperclip.copy('正在进行发中文试验,看到请忽略,更不要骂傻逼') # 复制
pyautogui.hotkey('ctrl', 'v') # 按下组合键的方法,ctrl+v粘贴
pyautogui.press('enter') # 按下按键

foto
Dessa forma, concluímos a função de enviar automaticamente mensagens do WeChat.

programador

APScheduler é uma biblioteca Python que permite que o agendamento atrasado do código Python seja executado, uma vez ou periodicamente. Novas tarefas podem ser adicionadas ou tarefas antigas podem ser excluídas a qualquer momento. É muito conveniente executar tarefas agendadas.

scheduler = BlockingScheduler() # 实例化一个调度器
scheduler.add_job(main, 'date', run_date=datetime(2021, 8, 18, 24, 00, 00)) # 添加任务
scheduler.start()

O método add_job passa 3 parâmetros aqui, o primeiro é a função a ser executada após o tempo acabar e o segundo é o tipo de trigger. O acionador de data é selecionado aqui, que é acionado em um ponto de tempo específico, e a tarefa de trabalho será executada apenas uma vez. O terceiro parâmetro run_date é o tempo de execução. Antes disso, eu encapsulei o código para enviar automaticamente a mensagem na função principal, basta chamá-la quando o tempo acabar.

parte do código

import pyautogui
import pyperclip
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler

def main():
  pyautogui.PAUSE = 0

  icon_position = pyautogui.Point(x=148, y=879) # 任务栏图标位置
  entry_position = pyautogui.Point(x=174, y=751) # 输入框位置

  pyautogui.moveTo(icon_position, duration=1) # duration为执行时长,可选
  pyautogui.click(icon_position)
  pyautogui.moveTo(entry_position, duration=0.7)
  pyautogui.click(entry_position)
  pyperclip.copy('快去睡觉')
  pyautogui.hotkey('ctrl', 'v')
  pyautogui.press('enter')
    pyperclip.copy('笨猪')
  pyautogui.hotkey('ctrl', 'v')
  pyautogui.press('enter')
    
scheduler = BlockingScheduler() # 实例化
scheduler.add_job(main, 'date', run_date=datetime(2021, 8, 18, 24, 00, 00)) # 添加任务
scheduler.start()

Feito! Agora pode ir dormir.

resultado

Quando acordei na manhã seguinte, fui repreendido por minha mãe e me perguntou por que meu computador ainda estava ligado à meia-noite e eu ainda estava enviando o WeChat sozinho!

No entanto, felizmente, minha namorada não se perdeu e completei com sucesso a tarefa da minha namorada!
foto

Tudo bem, é isso para este artigo. Isso é tudo que eu compartilhei, obrigado por ler!

Não esqueça de curtir , estou assistindo ~

artigo recomendado

Intercâmbio de Tecnologia

Código completo, aquisição de dados, você pode me pedir

Intercâmbios técnicos, referências de busca de emprego, resumo de produtos secos e interação com mais de 3.000 desenvolvedores de escolas e empresas famosas como Ali, Universidade de Pequim, Tsinghua, Academia Chinesa de Ciências, CMU, Tencent, Baidu, etc. ~

Atualmente, um grupo de intercâmbio técnico foi aberto e o grupo tem mais de 3.000 pessoas . A melhor maneira de comentar ao adicionar é: fonte + direção de interesse, o que é conveniente para encontrar amigos com ideias semelhantes

  • Método 1. Envie a seguinte imagem para o WeChat, pressione e segure para identificar e responda em segundo plano: adicionar grupo;
  • Método ②, adicione micro-sinal: dkl88191 , nota: da CSDN
  • Método ③, número público de pesquisa do WeChat: aprendizado de Python e mineração de dados , resposta em segundo plano: adicionar grupo
    insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/qq_34160248/article/details/124890488
Recomendado
Clasificación