最近考試,視頻考試,爲了那啥,作了個腳本,廢話很少說,直接上代碼:服務器
# -*- coding: utf-8 -*---- import ctypes import ctypes.wintypes import win32con from threading import Thread import time import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header from PIL import ImageGrab class HotKey(Thread): def run(self) -> None: # 註冊全局熱鍵 keyAlt = 0x0001 keyCtrl = 0x0002 keyF3 = 0x72 ret = ctypes.WinDLL("user32.dll").RegisterHotKey(None, 4001, keyCtrl | keyAlt, keyF3) if ret == 0: print("熱鍵註冊失敗!") else: print("熱鍵註冊成功!") msg = ctypes.wintypes.MSG() while True: if ctypes.windll.user32.GetMessageA(ctypes.byref(msg), None, 0, 0) != 0: if msg.message == win32con.WM_HOTKEY and msg.wParam == 4001: # 第三方 SMTP 服務 mail_host = "smtp.qq.com" # 設置服務器 # 用戶名 mail_user = "1363534266" # 口令(注意這個口令不是QQ郵箱密碼,登陸QQ郵箱,設置-賬戶-生成受權碼) mail_pass = "zjsuwdsaqwswqsaxghej" sender = '1363534266@qq.com' # 接收郵件,可設置爲你的QQ郵箱或者其餘郵箱 receivers = ['1304168777@qq.com'] # 截屏保存圖片 pic = ImageGrab.grab() pic_name = time.strftime("%Y_%m_%d_%H_%M_%S", time.localtime()) + ".jpg" pic.save(pic_name) # 建立一個帶附件的實例 message = MIMEMultipart() message['From'] = Header("LDC", 'utf-8') message['To'] = Header("李康", 'utf-8') # 郵件標題 subject = pic_name message['Subject'] = Header(subject, 'utf-8') # 郵件正文內容 message.attach(MIMEText('Hello World!', 'plain', 'utf-8')) # 構造附件1 傳送當前目錄下的 1.jpg 文件 att1 = MIMEText(open(pic_name, 'rb').read(), 'base64', 'utf-8') att1["Content-Type"] = 'application/octet-stream' # 這裏的filename能夠任意寫,寫什麼名字,郵件中顯示什麼名字 att1["Content-Disposition"] = 'attachment; filename="1.jpg"' message.attach(att1) try: server = smtplib.SMTP() # 25 爲 SMTP 端口號 server.connect(mail_host, 25) server.login(mail_user, mail_pass) server.sendmail(sender, receivers, message.as_string()) print("LDC:郵件發送成功!") except smtplib.SMTPException: print("Error: 沒法發送郵件!") ctypes.windll.user32.TranslateMessage(ctypes.byref(msg)) ctypes.windll.user32.DispatchMessageA(ctypes.byref(msg)) if __name__ == '__main__': hot_key = HotKey() hot_key.start()