1. 程式人生 > 實用技巧 >python註冊全域性熱鍵_截圖_發郵件帶附件

python註冊全域性熱鍵_截圖_發郵件帶附件

最近考試,視訊考試,為了那啥,做了個指令碼,廢話不多說,直接上程式碼:

# -*- 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 = '[email protected]' # 接收郵件,可設定為你的QQ郵箱或者其他郵箱 receivers = ['[email protected]'] # 截圖儲存圖片 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()