今天遇到一個(gè)問題。公司讓用電腦在網(wǎng)頁上看個(gè)視頻。網(wǎng)頁有個(gè)判斷:一段時(shí)間沒有鼠標(biāo)活動(dòng),視頻就會(huì)暫停。于是就想,能否隔一段時(shí)間就模擬鼠標(biāo)點(diǎn)擊一下視頻暫停,再點(diǎn)一下繼續(xù)播放。省得它自己停止播放。這樣我就可以讓網(wǎng)頁窗口在后臺(tái),我去干別的。
研究了一下,用python寫了個(gè)代碼基本上解決了這個(gè)問題。這里簡(jiǎn)單說一下解決思路。
先用窗口的名稱來獲取窗口的句柄:
# 把window_name替換成你窗口的名稱
handle = win32gui.FindWindow(None, "windown_name")
有了窗口句柄后,就可以向窗口發(fā)送鼠標(biāo)事件文章來源:http://www.zghlxwxcb.cn/news/detail-657335.html
# 向X,Y坐標(biāo)點(diǎn)發(fā)送鼠標(biāo)左鍵點(diǎn)擊事件
import win32api, win32con, win32gui
def click_button(hwnd, x, y):
lParam = win32api.MAKELONG(x, y)
win32api.SendMessage(hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lParam)
win32api.SendMessage(hwnd, win32con.WM_LBUTTONUP, None, lParam)
然后改造下面的代碼(定時(shí)器),讓過一段事件鼠標(biāo)點(diǎn)擊一次文章來源地址http://www.zghlxwxcb.cn/news/detail-657335.html
# -*- coding:utf-8 -*-
import threading
import time
cancel_tmr = False
def start():
#具體任務(wù)執(zhí)行內(nèi)容
print("hello world")
def heart_beat():
# 打印當(dāng)前時(shí)間
print(time.strftime('%Y-%m-%d %H:%M:%S'))
if not cancel_tmr:
start()
# 每隔3秒執(zhí)行一次
threading.Timer(3, heart_beat).start()
if __name__ == '__main__':
heart_beat()
# 15秒后停止定時(shí)器
time.sleep(15)
cancel_tmr = True
到了這里,關(guān)于使用python向窗口發(fā)送鼠標(biāo)點(diǎn)擊命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!