1. 程式人生 > >python入門(三) 實現QQ自動傳送訊息

python入門(三) 實現QQ自動傳送訊息

前言

前面二章簡單過了一下python的基本知識,最近剛好需要實現QQ自動傳送訊息的指令碼,於是便拿python來練手。

業務邏輯

1、開啟需要傳送訊息的視窗

2、鎖定該視窗

3、將需要傳送的內容放到QQ視窗

4、模擬按鍵傳送enter鍵傳送訊息(QQ傳送訊息有二種方式Enter/Ctrl+Enter,本次案例使用Enter)

環境

win10 + python3.7.1

從業務上看,程式需要對window的視窗進行操作,應此需要安裝pywin32來訪問win32API 

pywin32下載地址

鎖定QQ視窗

鎖定視窗使用win32gui庫中的FindWindow函式

定義:

HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName)

引數:

IpClassName:指向類名

IpWindowName:指向視窗名

返回值:

有指定的類名和視窗的名字則表示成功返回一個視窗的控制代碼。否則返回零。

由於不清楚QQ視窗所使用的類名,應此我們只需在IpWindowName填上聊天物件的名字就好

例如

handle = win32gui.FindWindow(None, "XXX聊天群")

填充訊息

填充訊息使用win32gui庫中的SendMessage函式

定義:

LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam)

引數:

hWnd :視窗控制代碼

Msg:指定被髮送的訊息。

wParam:指定附加的訊息特定資訊。

IParam:指定附加的訊息特定資訊。

例如:

#將剪下板中內容填充到視窗中

win32gui.SendMessage(handle, 770, 0, 0) 

傳送訊息

填充訊息使用win32gui庫中的SendMessage函式

#向視窗傳送回車訊息

win32gui.SendMessage(handle, win32cin.WM_KEYDOWN, win32con.VK_RETURN, 0)

測試程式碼

import win32gui
import win32con
import win32clipboard as w

#傳送的訊息
msg = "測試程式碼"
#視窗名字
name = "不知"
#將測試訊息複製到剪下板中
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_UNICODETEXT, msg)
w.CloseClipboard()
#獲取視窗控制代碼
handle = win32gui.FindWindow(None, name)
#while 1==1:
if 1 == 1:
    #填充訊息
    win32gui.SendMessage(handle, 770, 0, 0)
    #回車傳送訊息
    win32gui.SendMessage(handle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)

相關推薦

python入門 實現QQ自動傳送訊息

前言 前面二章簡單過了一下python的基本知識,最近剛好需要實現QQ自動傳送訊息的指令碼,於是便拿python來練手。 業務邏輯 1、開啟需要傳送訊息的視窗 2、鎖定該視窗 3、將需要傳送的內容放到QQ視窗 4、模擬按鍵傳送enter鍵傳送訊息(QQ傳送訊息有二

python入門判斷語句

邏輯判斷 if lse while python中的常用判斷語句if....elif....else,whileifif的用法: if + 條件判斷: 邏輯操作..... 例子:比如讓你輸入一個數字,來判斷這個數字的大小 #如果這個數字大於80 if 90>80:

03 React快速入門——實現從一個輸入框中新增完資料後此輸入框內容清除的功能

功能描述:       我們在一個輸入框輸入內容,然後點選新增按鈕,此輸入框的內容就會新增到頁面上,但是此輸入框中還存在上次輸入的內容,我們想在每次輸入新增完成之後,此輸入框中的內容就會清除,如圖:      

python入門條件語句語法

Python 條件語句 Python條件語句是通過一條或多條語句的執行結果(True或者False)來決定執行的程式碼塊。 可以通過下圖來簡單瞭解條件語句的執行過程: Python程式語言指定任何非0和非空(null)值為true,0 或者 null為f

Unity3D 使用備忘 實現相機自動漫遊開始、暫停、停止及相機角度切換。

(1)將Main Camera遊戲物體附加給SceneManager的MainSceneManager(Script)元件下的doToweenPath屬性(可通過點選doTweenPath在Scene中選擇Main Camera 或者直接將Main Camera 拖拽到doToweenPath屬性中)。   

Python學習 八大排序算法的實現

ram tty adjust 二叉樹 turn bre python 使用 元素 本文Python實現了插入排序、基數排序、希爾排序、冒泡排序、高速排序、直接選擇排序、堆排序、歸並排序的後面四種。 上篇:Python學習(三) 八大排序算法的實現(上)

Python中Flask的基礎入門

如果我們想要在flask中用到資料庫,那麼我們需要配置。 下面我們有mysql為例來配置 首先你的電腦上要有一個mysql資料庫,然後才可以。 下面是我們配置的程式碼 from flask import Flask,render_template from flask_sqlal

python 快速入門

九. 類 1.建立類 class Dog(): """一次模擬小狗的簡單嘗試""" def __init__(self, name, age): """初始化屬性name和age""" self.name = name

Spring boot入門:SpringBoot整合結合AdminLTE(Freemarker),利用generate自動生成程式碼,利用DataTable和PageHelper進行分頁顯示

  關於SpringBoot和PageHelper,前篇部落格已經介紹過Spring boot入門(二):Spring boot整合MySql,Mybatis和PageHelper外掛,前篇部落格大致講述了SpringBoot如何整合Mybatis和Pagehelper,但是沒有做出實際的範例,本篇部落格是連

Spring Boot 入門: 自動化配置實現

自動化配置實現 我們在上章編寫入門案例的時候,我們使用的是Spring Mvc 作為我們的表現層框架,但是我們都知道我們要使用Spring Mvc 我們就需要在web.xml檔案中配置Spring Mvc 的前端控制器DispatcherServlet。但是我們

利用Python資料分析:pandas入門

obj = Series(range(3),index=['a','b','c']) index = obj.index index index[1:] index[1] = 'd' # index物件是不能被修改的 Index does not support mut

python爬蟲入門XPATH和BeautifulSoup4

 XML和XPATH 用正則處理HTML文件很麻煩,我們可以先將 HTML檔案 轉換成 XML文件,然後用 XPath 查詢 HTML 節點或元素。 XML 指可擴充套件標記語言(EXtensible Markup Language) XML 是一種標記語言,很類似 HTML XML 的設計宗旨是

Python】打響2019年第炮-Python爬蟲入門

打響2019年第三炮-Python爬蟲入門   今晚喝了點茶,也就是剛剛,喝茶過程中大腦中溢位一個想法,茶中有茶葉,也有茶水,在茶水入口的一瞬間我不能直接喝進去,因為直接喝進去會帶著茶葉喝進去會很難受。這可能是一句廢話。   本章主要解決第一炮、第二炮遺留下來的問題,該如何

python web py入門12- 實現使用者登入論壇

前面已經介紹了怎麼註冊使用者,當用戶註冊成功之後,就需要使用帳號進行登入,這個登入過程是怎麼樣實現的呢?首先是要有一個登入的連線,通過首頁點選登入,就會進入登入的URL連線:http://127.0.0.1:8080/login,當你在網頁上點選之後,就會在WEBPY的應用處

python進階學習筆記——實現python任意個數的關鍵字引數

class Person(object): def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth

【day 12】python程式設計:從入門到實踐學習筆記-基於Django框架的Web開發-Django入門

學習筆記目錄 第十八章 Django入門(三) 建立網頁:學習筆記主頁 使用django建立網頁通常分三個階段:定義URL、編寫檢視和編寫模板。 首先必須定義URL模式,其描述了URL是

python入門

html pre uic 程序 添加 -a 控制臺 命令 成了 第一步,我們先來安裝Python,博主選擇的版本是最新的3.4.2版本。windows下面的Python安裝一般是通過軟件安裝包安裝而不是命令行,所以我們首先要在Python的官方主頁上面下載最新的Python

Storm入門HelloWorld示例

right 出現 9.png context color tro order tput 執行 一、關聯代碼 使用maven,代碼如下。 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x

python基礎----字符編碼以及文件處理

odin mod window 存儲空間 表示 一行 內存數據 rec 錯誤 字符編碼與文件處理 一.字符編碼 由字符翻譯成二進制數字的過程 字符--------(翻譯過程)------->數字 這個過程實際就是一個字符如何對應一個特定數字的標準,這個標準

java加密算法入門-非對稱加密詳解

共享數據 net clas 實例 查看 安全性 自己的 generator mir 1、簡單介紹 這幾天一直在看非對稱的加密,相比之前的兩篇內容,這次看了兩倍多的時間還雲裏霧裏的,所以這篇文章相對之前的兩篇,概念性的東西多了些,另外是代碼的每一步我都做了介紹,方便自己以後