日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

编写qq刷屏软件

發布時間:2024/4/24 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 编写qq刷屏软件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用pywin32制作qq刷屏軟件

思路:

使用pywin32,來訪問windows系統的剪貼板,把要發送的內容加入剪貼板中
使用pywin32,模仿按鍵操作“control+v”把內容復制到QQ的聊天窗口上,然后“enter”發送消息。
文件讀取,把要刷屏的語言保存在本地的shuaping.txt中,一次性讀取到列表中。然后一條一條的發送完成刷屏。
參考:
如何用python模擬鍵盤輸入
python訪問剪貼板

代碼:

python操作剪貼板:如何把文件內容復制進入剪貼板

 #-*- coding: utf-8 -*-
import win32clipboard as cb
import win32con
date = "Hello,World"
cb.OpenClipboard()#打開剪貼板
cb.SetClipboardData(win32con.CF_TEXT, date)#把數劇復制到剪貼板
cb.CloseClipboard()#用完后關閉剪貼板

試一試粘貼,看內容是否變成了“Hello World”

模仿按鍵操作“control+v”和“enter”

import win32clipboard as cb
import win32con
import win32api
date = "Hello,World"
cb.OpenClipboard()#打開剪貼板
cb.SetClipboardData(win32con.CF_TEXT, date)#把數劇復制到剪貼板
cb.CloseClipboard()#用完后關閉剪貼板
win32api.keybd_event(17,0,0,0)  #ctrl鍵位碼是17
win32api.keybd_event(86,0,0,0)  #v鍵位碼是86
win32api.keybd_event(86,0,win32con.KEYEVENTF_KEYUP,0) #釋放按鍵
win32api.keybd_event(17,0,win32con.KEYEVENTF_KEYUP,0)

這里發現了一些問題,如果有數據中包含中文字符,粘貼出來是亂碼,搜索后發現復制是默認使用的是ANCI,那么解決方法是指定使用unicode格式
cb.SetClipboardData(win32con.CF_UNICODETEXT, date)就是把這個函數的第一個參數改為CF_UNICODETEXT

讀取文件

def open_file(filename):
    f = open(filename, "r")
    content = f.readlines() #考慮到這個文件內容一般不會很大,就一次性讀取到列表了。
    f.close()
    return content

使用wxpython 編寫圖像界面:

import wx
class Screen(wx.Frame):
    def __init__(self):
        self.explain = u'       使用說明'
        wx.Frame.__init__(self, parent=None, id=1, title=u"QQ刷屏器", size=(600,400))
        self.panel = wx.Panel(self, -1)
        self.Centre() #居中顯示窗口
        self.dateText = wx.TextCtrl(self.panel, -1, self.explain, style=wx.TE_MULTILINE, size=(300,330), pos=(1, 10))
        version = wx.StaticText(self.panel, -1, u"版本1.0
作者:即刻", pos=(520,320))
        self.open_file = wx.Button(self.panel, label=u'打開刷屏文件            ', pos=(310,40))
        self.start = wx.Button(self.panel, label=u'開始刷屏', pos=(450,40))
        self.SleepTxet = wx.StaticText(self.panel, -1, u"刷屏的時間間隔(s):", pos=(310,10))
        self.Sleep = wx.TextCtrl(self.panel, -1, "0.5", pos=(450,10))
        self.SaveDate = wx.Button(self.panel, -1, u"保存對刷屏文件的修改", pos=(310,70))
        self.stop = wx.Button(self.panel, -1,label=u"停止刷屏", pos=(450,70))
if __name__ == "__main__":
    app = wx.App()
    screen = Screen()
    screen.Show()
    app.MainLoop()

參考wxpython入門

完整代碼(整體功能已完成,基本可以使用,但缺陷太坑,根本停不下來!QaQ)

# -*- coding: utf-8 -*-
import win32clipboard as cb
import win32con
import win32api
import time
import os
import wx
class Screen(wx.Frame):
    def __init__(self):
        self.interval = 2  #默認刷屏的間隔時間
        self.condition = False  #刷屏的狀態,默認關閉
        self.explain = u'                使用說明
1.你可以在本框內自定義刷屏文本,或者打開刷屏的txt文件
2.點擊開始后 3s開始刷屏,請立即點擊qq聊天窗口
3.停止按鈕無效,暫時沒有解決方法 QaQ '
        wx.Frame.__init__(self, parent=None, id=1, title=u"QQ刷屏器", size=(600,400))
        self.panel = wx.Panel(self, -1)
        self.Centre() #居中顯示窗口
        self.dateText = wx.TextCtrl(self.panel, -1, self.explain, style=wx.TE_MULTILINE, size=(300,330), pos=(1, 10))
        wx.StaticText(self.panel, -1, u"版本1.0
作者:即刻", pos=(520,320))
        open_file = wx.Button(self.panel, label=u'打開刷屏文件            ', pos=(310,40))
        start = wx.Button(self.panel, label=u'開始刷屏', pos=(450,40))
        wx.StaticText(self.panel, -1, u"刷屏的時間間隔(s):", pos=(310,10))
        self.Sleep = wx.TextCtrl(self.panel, -1, str(self.interval), pos=(450,10))
        SaveDate = wx.Button(self.panel, -1, u"保存對刷屏文件的修改", pos=(310,70))
        stop = wx.Button(self.panel, -1,label=u"停止刷屏", pos=(450,70))
        self.Bind(wx.EVT_BUTTON, self.open_file, open_file)
        self.Bind(wx.EVT_BUTTON, self.start, start)
        self.Bind(wx.EVT_BUTTON, self.stop, stop)
        self.Bind(wx.EVT_BUTTON, self.SaveDate, SaveDate)
    def stop(self,event):
        self.condition = False
    def open_file(self, event):
        """open a file"""
        self.dirname = ''
        dlg = wx.FileDialog(self, "Choose a file", self.dirname, "", "*.*", wx.OPEN)  # 調用一個函數打開對話框
        if dlg.ShowModal() == wx.ID_OK:
            self.filename = dlg.GetFilename()
            self.dirname = dlg.GetDirectory()
            self.address = os.path.join(self.dirname, self.filename)
            f = open(self.address, "r")
            file = (f.read()).decode(encoding='utf-8')  # 解碼,使文件可以讀取中文
            f.close()
            self.dateText.Clear()
            self.dateText.AppendText(file)  # 把打開的文件內容顯示在多行文本框內
        dlg.Destroy()
    def SaveDate(self, event):
        date = (self.dateText.GetValue()).encode(encoding="utf-8")  # 編碼,使中文可以正確存儲
        f = open(self.address, 'w')
        f.write(date)
        f.close()  # 把文本框內的數據寫入并關閉文件
        dlg = wx.MessageDialog(self, u"文件已經成功保存", u"消息提示", wx.OK)
        dlg.ShowModal()
        dlg.Destroy()
    def start(self,event):
        self.interval = float(self.Sleep.GetValue())  #因為sleep函數的參數必須為小數,而GetValue()如果數字不帶小數點會得到整數。
        file = (self.dateText.GetValue())
        date = file.split("
")
        time.sleep(3)
        self.condition =True
        while self.condition:
            for dateline in date:
                time.sleep(self.interval)
                cb.OpenClipboard()  # 打開剪貼板
                cb.SetClipboardData(win32con.CF_UNICODETEXT, dateline)  # 把數劇復制到剪貼板
                cb.CloseClipboard()  # 用完后關閉剪貼板
                win32api.keybd_event(17, 0, 0, 0)  # ctrl鍵位碼是17
                win32api.keybd_event(86, 0, 0, 0)  # v鍵位碼是86
                win32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)  # 釋放按鍵
                win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
                win32api.keybd_event(13, 0, 0, 0)  # 回車鍵碼是13
                win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)  # 釋放回車鍵
if __name__ == "__main__":
    app = wx.App()
    screen = Screen()
    screen.Show()
    app.MainLoop()

ps在這幾天查找到了直接給窗口發送消息的辦法,即取得窗口的句柄,利用win32api直接發送消息給窗口,這樣省卻很多中間環節,不過需要了解的知識很多,暫時無精力看它了。

參考:
pyQT指定窗口截圖
利用python和win32定制一個按鍵精靈

如何獲得窗口的句柄:使用spy++或者使用win32的FindWindow和FindWindEx函數

import win32gui
label = u"風的 Android手機"  #這里是窗口的名字
hld = win32gui.FindWindow(None,label)
print "%x" % hld  #注意此處應該以十六進制輸入,因為python默認十進制輸出。

獲取窗口的句柄:70622 這和我用spy++獲取到的一樣。

這里再次遇到問題:qq的聊天窗口 查找不到子窗口,于是也沒有查找到Edit控件,于是無法把內容傳遞到輸入框內
·搜查資料后得知qq使用的是DirectUI控件和父窗口在一起,無法抓取到控件。

待續。。。

可以完善的地方:

使用wxpython來完善使用界面,然后方便的使用cx_freeze或py2exe打包為exe分享給朋友使用
使用wxpython的多行文本框來顯示刷屏的語句,并且可以修改,并保存這些語句。
可以自己設置發送的間隔時間,設置一次性發送語句的條數。
檢測刷屏語句的字數,如果字數超過qq聊天窗口的限制,把一條語句拆分發送。
加入圖片刷屏的功能。

這是我想到的最簡單實現qq聊天刷屏的方法,但缺點很明顯,消息刷屏的時候就不能做其他操作了。

問題:
1.是否有其他不用模擬按鍵的方法來發送qq消息。

如果有建議希望您可以詳細告訴我,不勝感激。如果有問題,請評論,我會盡心解答。

總結

以上是生活随笔為你收集整理的编写qq刷屏软件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 又黄又爽的网站 | 91丨porny丨在线 | 九一精品在线 | 国产乱xxⅹxx国语对白 | 雪花飘电影在线观看免费高清 | 国产女人爽到高潮a毛片 | 黑色丝袜吻戏亲胸摸腿 | 欧美大白屁股 | 黄色资源在线 | 女人性做爰100部免费 | 亚洲av无码一区二区三区在线 | 成人精品毛片 | 日本伦理片在线播放 | 国产又色又爽又高潮免费 | 91精品亚洲 | 男人天堂久久久 | 国产三级视频 | 福利在线免费观看 | 日韩在线播放一区二区 | 色黄视频在线观看 | 午夜少妇久久久久久久久 | 免费观看黄色一级视频 | 好吊妞视频在线观看 | 欧美一二三区视频 | www成人啪啪18软件 | 特黄aaaaaaaaa毛片免费视频 | 91色精品| 精品国产视频在线 | 国产一区亚洲二区 | 秋霞99| 国产精品视频一区二区在线观看 | 精品久久久久中文慕人妻 | 爱爱免费网站 | 毛片毛片毛片毛片毛片毛片毛片毛片 | 影音先锋美女 | 一区三区视频 | 亚洲综合色视频 | 国产精品一区二区免费 | 久久精品丝袜 | 一区二区三区视频免费视 | 青青青手机在线视频 | 中文字幕乱码人妻一区二区三区 | 亚洲av无码一区二区三区在线观看 | 亚洲在线a | 久久国产人妻一区二区免色戒电影 | 国产欧美日韩另类 | 51av视频 | 想要xx视频 | 国产精品久久久久久人 | 五月天三级 | 欧美一区成人 | 亚洲成人少妇 | 久久www视频 | 欧美被狂躁喷白浆精品 | 一区二区三区在线视频免费观看 | 男人操女人的视频 | 欧美成人a∨高清免费观看 国产精品999视频 | 91污网站 | 黄色三级三级三级三级 | 亚洲做受高潮无遮挡 | 亚洲图片 欧美 | 无码一区二区精品 | 91国产高清 | 国产在线导航 | 男女插插插网站 | 综合色爱 | 久久国产免费视频 | 国产精品日日夜夜 | 亚洲乱强伦 | 青青操影院 | 精品伦一区二区三区 | 亚洲自拍偷拍第一页 | 国产精品video | 中国特级毛片 | 久久国产一二三 | 久久久久久久久久久网 | 中文字幕无码av波多野吉衣 | 日本视频精品 | 中文字母av | 欧美日韩成人 | 伊人久久五月 | 日韩欧美偷拍 | 冲田杏梨 在线 | 日本一区二区高清免费 | 国产精品久线在线观看 | 被警察猛c猛男男男 | 小小姑娘电影大全免费播放 | 91网站免费入口 | 精品国产日本 | 中文精品无码中文字幕无码专区 | 午夜影院网站 | 欧美性生活一级 | 色网视频 | 精品少妇| 九色影视 | 99爱在线 | 天天爽夜夜操 | 传媒一区二区 | 午夜美女网站 |