<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      TOP

      操作微信發送消息

      安裝

      pip install wxauto
      pip install flask

       

      原理

      需要 windows 環境下, 登錄微信后

      啟動腳本服務, flask web 接受 post 的 發送信息請求操作 微信客戶端進行發送

      不需要解析微信協議,操作方式較為安全

      腳本

      服務腳本

      from wxauto import WeChat
      import win32gui
      import os
      from flask import Flask, request, jsonify
      
      
      # 動態匹配微信窗口類名并獲取句柄
      def find_wechat_window():
          class_names = ["WeChatMainWndForPC", "WeChatMainWndForStore"]
          for name in class_names:
              hwnd = win32gui.FindWindow(name, None)
              if hwnd != 0:
                  print(f"找到微信窗口句柄: {hwnd}")
                  return hwnd
          print("未找到微信窗口,請檢查窗口狀態或類名")
          return None
      
      
      # 初始化微信操作對象
      wechat_hwnd = find_wechat_window()
      if wechat_hwnd is None:
          raise RuntimeError("未能找到微信窗口,程序終止")
      
      wx = WeChat()
      
      # 創建Flask應用
      app = Flask(__name__)
      
      
      @app.route('/api/sendmsg', methods=['POST'])
      def send_message():
          """
          接收外部POST請求并發送消息到指定聯系人。
          請求必須為JSON格式,包含'message'和'name'字段。
          """
          if 'name' not in request.form:
              return jsonify({'error': 'No name part'}), 400
          if 'message' not in request.form:
              return jsonify({'error': 'No message part'}), 400
      
          name = request.form['name']
          message = request.form['message']
      
          try:
              # 發送消息
              wx.SendMsg(msg=message, who=name)
              return jsonify({
                  "status": "success"
              }), 200
          except Exception as e:
              # 捕獲異常并返回錯誤信息
              return jsonify({
                  "error": "send message failed",
                  "details": str(e)
              }), 500
      
      
      @app.route('/api/sendfile', methods=['POST'])
      def send_file():
          """
          接收文件上傳并發送到指定微信聯系人
          請求格式:multipart/form-data
          參數:
          - files: 文件列表(必須)
          - name: 目標聯系人(必須)
          """
          # 驗證必填參數
          if 'file' not in request.files:
              return jsonify({'error': 'No file part'}), 400
      
          if 'name' not in request.form:
              return jsonify({'error': 'No name part'}), 400
      
          name = request.form['name']
          # 獲取上傳的文件
          file = request.files.get('file')
          file_path = receive_wechat_file(file)
      
          try:
              wx.SendFiles(filepath=file_path, who=name)
              return jsonify({
                  "status": "success",
              }), 200
          except Exception as e:
              # 清理已上傳文件
              os.remove(file_path)
              return jsonify({"error": "send file failed", "details": str(e)}), 500
      
      
      def receive_wechat_file(file):
          if file:
              # 下載文件
              dir = 'files'
              filename = file.filename
              filename = filename.replace('/', '_')  # 將斜杠替換為下劃線
              filename = filename.replace('\\', '_')  # 將反斜杠替換為下劃線
              filename = filename.replace('..', '_')  # 將連續的點號替換為下劃線
              # filename = filename.replace('.', '_')  # 將點號替換為下劃線
      
              if not os.path.exists(dir):
                  os.makedirs(dir)
      
              file_path = os.path.join(dir, filename)
      
              print(file_path)
      
              file.save(file_path)
              return file_path
      
          return False
      
      
      if __name__ == '__main__':
          # 啟動Flask服務,監聽所有網絡接口
          app.run(host='0.0.0.0', port=80)

       

      發送信息腳本

      import requests
      
      
      def send_message(name, message):
          """發送消息到指定API"""
          url = "http://127.0.0.1/api/sendmsg"
          data = {"message": message, "name": name}
      
          try:
              response = requests.post(url, data=data)
              if response.status_code == 200:
                  print("請求成功,返回數據:", response.json())
              else:
                  print(f"請求失敗,狀態碼:{response.status_code},錯誤信息:{response.text}")
          except Exception as e:
              print(f"網絡請求異常:{str(e)}")
      
      
      if __name__ == '__main__':
          send_message("要發送的人民或者群聊名稱", "要發送的內容")

       

      posted @ 2025-06-17 15:27  羊駝之歌  閱讀(99)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲乱色一区二区三区丝袜| 好吊视频在线一区二区三区| 无码一区二区三区久久精品| 狠狠色狠狠色五月激情| 国产专区一va亚洲v天堂| 人成午夜大片免费视频77777| 国产高清在线a视频大全| 国产午夜精品福利在线观看| 久久综合久中文字幕青草| 精品国产亚洲av麻豆特色| 欧洲中文字幕国产精品| 色偷偷www.8888在线观看| 猫咪AV成人永久网站在线观看| 337P日本欧洲亚洲大胆精品555588| 国产亚洲一区二区三区成人| 99中文字幕精品国产| 久久综合国产色美利坚| av男人的天堂在线观看国产| 亚洲高清激情一区二区三区| 日日碰狠狠添天天爽五月婷| 翘臀少妇被扒开屁股日出水爆乳 | 国产精品国产三级国快看| 亚洲成a人片在线视频| 国产精品剧情亚洲二区| 亚洲偷偷自拍码高清视频| 亚洲成aⅴ人在线观看| 丁香五月亚洲综合深深爱| 久久精品国产99国产精品澳门| 亚洲色大成网站WWW永久麻豆| 国产玩具酱一区二区三区| 国产成人拍国产亚洲精品| 日99久9在线 | 免费| 99在线精品视频观看免费| 欧美三级在线播放| 国产一二三五区不在卡| 人妻无码中文字幕| 窝窝午夜色视频国产精品破| 日日碰狠狠添天天爽不卡| 欧美肥妇毛多水多bbxx| 国产午夜福利不卡在线观看 | 影音先锋男人站|