欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何利用Python獲取鼠標在屏幕上的具體位置以及動作

 更新時間:2025年03月14日 10:40:52   作者:計算機輔助工程  
這篇文章主要為大家詳細介紹了如何使用python實現(xiàn)獲取鼠標在屏幕上的具體位置以及動作,從而判斷鼠標是否在瀏覽器內(nèi),感興趣的小伙伴可以了解下

在Python中,要獲取鼠標在屏幕上的具體位置以及動作,并判斷鼠標是否在瀏覽器內(nèi),我們可以使用pyautogui庫。pyautogui是一個非常強大的庫,可以用來模擬鼠標操作、屏幕截圖、獲取屏幕尺寸和分辨率等。

安裝pyautogui

首先,確保你已經(jīng)安裝了pyautogui。如果還沒有安裝,可以通過pip安裝:

pip install pyautogui

獲取鼠標位置

你可以使用pyautogui.position()來獲取鼠標的當前位置。這個函數(shù)返回一個包含兩個元素的元組,分別表示鼠標在屏幕上的X和Y坐標。

import pyautogui
 
# 獲取鼠標當前位置
x, y = pyautogui.position()
print(f"Mouse position: X={x}, Y={y}")

監(jiān)聽鼠標動作

pyautogui還允許你監(jiān)聽鼠標事件,例如鼠標點擊、移動等。你可以使用pyautogui.listen()方法來實現(xiàn)。但是,請注意,這種方法會阻塞你的腳本,直到你手動停止監(jiān)聽。如果你想在后臺持續(xù)監(jiān)聽,可以考慮使用線程或者異步編程。

import pyautogui
 
def on_move(x, y):
    print(f"Mouse moved to: X={x}, Y={y}")
 
def on_click(x, y, button):
    print(f"Mouse clicked at: X={x}, Y={y}, Button={button}")
# 監(jiān)聽鼠標移動和點擊事件
pyautogui.listen(onMove=on_move, onClick=on_click)

判斷鼠標是否在瀏覽器內(nèi)

要判斷鼠標是否在瀏覽器內(nèi),你需要知道瀏覽器窗口的位置和大小。你可以使用pyautogui.getWindowsWithTitle()來獲取特定標題的窗口信息,然后判斷鼠標位置是否在這個窗口的區(qū)域內(nèi)。

import pyautogui
 
# 假設(shè)瀏覽器窗口的標題是 "Google Chrome"
windows = pyautogui.getWindowsWithTitle('Google Chrome')
if windows:
    window = windows[0]  # 獲取第一個匹配的窗口,如果有多個則選擇第一個
    x, y = pyautogui.position()  # 獲取當前鼠標位置
    # 獲取窗口的位置和大小
    window_x, window_y, width, height = window.left, window.top, window.width, window.height
    # 判斷鼠標是否在瀏覽器窗口內(nèi)
    if window_x <= x <= window_x + width and window_y <= y <= window_y + height:
        print("Mouse is inside the browser.")
    else:
        print("Mouse is outside the browser.")
else:
    print("Browser window not found.")

注意:

確保你的腳本有權(quán)限訪問這些信息,尤其是在某些操作系統(tǒng)上可能需要額外的權(quán)限。

對于跨平臺的兼容性,特別是在Windows和MacOS上,確保你的代碼在不同平臺上都能正確運行。例如,窗口的屬性和方法在不同平臺之間可能有所不同。

對于更復雜的窗口管理或自動化任務(wù),考慮使用像pywinauto(針對Windows)或pyobjc(針對MacOS)這樣的庫來提供更精確的窗口控制和事件監(jiān)聽。但對于簡單的任務(wù),pyautogui已經(jīng)足夠強大且易于使用。

方法擴展

下面小編為大家整理了一些其他Python獲取鼠標位置的相關(guān)方法,希望對大家有所幫助

Python獲取鼠標形狀和位置

import win32gui

cur = win32gui.GetCursorInfo()
print(cur)

# 輸出的是一個元組,類似于(1, 65561, (606, 699))

# 其中:
# 第二個元素是鼠標的形狀代碼
# 第三個元素是鼠標的位置

# 鼠標形狀代碼:
# 65539:正常的鼠標形狀
# 65541:文本輸入的形狀
# 65555:調(diào)整窗口大小的形狀
# 65567:超級鏈接的手指頭
# 65543:圓圈
# 65561:正常的鼠標形狀+圓圈
# 如果想寫一個等待鼠標轉(zhuǎn)圈結(jié)束的代碼,應(yīng)該是這個樣子:
import win32gui
import time

while win32gui.GetCursorInfo()[1] == 65543:
    time.sleep(1)
print('轉(zhuǎn)圈結(jié)束')

用python獲取屏幕上鼠標的坐標

import pyautogui as pg
import time
def mouse_coordinate():
    print('Press Ctrl-C to quit.')
    try:
        while True:
            # 獲取鼠標下x, y坐標
            x, y = pg.position()
            # 調(diào)整x, y輸出格式
            positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
            print(positionStr, end='')
            time.sleep(0.2)
            print('\b' * len(positionStr), end='', flush=True)
    except KeyboardInterrupt:
        print('\nDone.')
if __name__ == '__main__':
    mouse_coordinate()

python selenium獲取鼠標位置

# 捕捉鼠標移動事件
self.scatter.scene().sigMouseMoved.connect(self.mouseover)
# 捕捉到單擊事件后,需要做的動作,在mouseover函數(shù)里完成,主要是提取點的坐標
from PySide2 import QtGui, QtWidgets, QtCore
# from pyqtgraph.Qt import  QtCore
import pyqtgraph as pg
import sys
from random import randint
import numpy as np

FieldRadius = 100

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('pyqtgraph作圖')
        # 創(chuàng)建 PlotWidget 對象
        self.pw = pg.PlotWidget()
        # 設(shè)置圖表標題
        self.pw.setTitle("節(jié)點分布圖",
                         color='008080',
                         size='12pt')
        # 設(shè)置上下左右的label
        self.pw.setLabel("left","縱坐標")
        self.pw.setLabel("bottom","橫坐標")

        self.pw.setXRange(min=0,  # 最小值
                          max=FieldRadius)  # 最大值
        # 設(shè)置Y軸 刻度 范圍
        self.pw.setYRange(min=0,  # 最小值
                          max=FieldRadius)  # 最大值
        # 顯示表格線
        self.pw.showGrid(x=True, y=True)
        # 背景色改為白色
        self.pw.setBackground('w')
        # 居中顯示 PlotWidget
        self.setCentralWidget(self.pw)

        # 實時顯示應(yīng)該獲取 PlotDataItem對象, 調(diào)用其setData方法,
        # 這樣只重新plot該曲線,性能更高
        self.scatter = self.pw.plot(pen=None, symbol='o')

        self.i = 0
        self.x = [] # x軸的值
        self.new_point_x = 0
        self.y = [] # y軸的值
        self.new_point_y = 0

        self.setMouseTracking(False)
        self.scatter.scene().sigMouseMoved.connect(self.mouseover)
        self.scatter.scene().sigMouseClicked.connect(self.mouse_clicked)

        # 啟動定時器,每隔1秒通知刷新一次數(shù)據(jù)
        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.updateData)
        self.timer.start(100)

    def updateData(self):
        self.scatter.setData(self.x, self.y)

    # 鼠標移動事件,用于獲取精確坐標(好像鼠標單擊的坐標不準確)
    def mouseover(self,pos):
        # 參數(shù)pos 是像素坐標,需要 轉(zhuǎn)化為  刻度坐標
        act_pos = self.scatter.mapFromScene(pos)
        if type(act_pos) != QtCore.QPointF:
            return
        # print("over_1:",act_pos.x(), act_pos.y())
        self.new_point_x = act_pos.x()
        self.new_point_y = act_pos.y()

    # 鼠標單擊事件,用于鼠標單擊后事件的處理,包括:
    # 1)添加新坐標
    def mouse_clicked(self,event):

        self.x.append(self.new_point_x)
        self.y.append(self.new_point_y)
        # print("my position is:",self.xx,self.yy)

if __name__ == '__main__':
    app = QtWidgets.QApplication()
    main = MainWindow()
    main.show()
    app.exec_()

到此這篇關(guān)于如何利用Python獲取鼠標在屏幕上的具體位置以及動作的文章就介紹到這了,更多相關(guān)Python獲取鼠標位置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于Python使用turtle庫畫任意圖的問題

    關(guān)于Python使用turtle庫畫任意圖的問題

    這篇文章主要介紹了Python turtle庫畫任意圖,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • Python實現(xiàn)批量將PPT轉(zhuǎn)換成長圖

    Python實現(xiàn)批量將PPT轉(zhuǎn)換成長圖

    這篇文章主要為大家詳細介紹了如何利用Python實現(xiàn)批量將PPT轉(zhuǎn)換成長圖,并且圖片名稱與PPT文件名稱相同,保存位置相同,感興趣的小伙伴可以了解下
    2023-08-08
  • Python實現(xiàn)修改文件內(nèi)容的方法分析

    Python實現(xiàn)修改文件內(nèi)容的方法分析

    這篇文章主要介紹了Python實現(xiàn)修改文件內(nèi)容的方法,結(jié)合實例形式分析了Python文件讀寫、字符串替換及shell方法調(diào)用等相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • python 怎樣將dataframe中的字符串日期轉(zhuǎn)化為日期的方法

    python 怎樣將dataframe中的字符串日期轉(zhuǎn)化為日期的方法

    這篇文章主要介紹了python 怎樣將dataframe中的字符串日期轉(zhuǎn)化為日期的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Python操作CouchDB數(shù)據(jù)庫簡單示例

    Python操作CouchDB數(shù)據(jù)庫簡單示例

    這篇文章主要介紹了Python操作CouchDB數(shù)據(jù)庫簡單示例,本文講解了連接服務(wù)器、創(chuàng)建數(shù)據(jù)庫、創(chuàng)建文檔并插入到數(shù)據(jù)庫等操作實例,需要的朋友可以參考下
    2015-03-03
  • Python+wxauto實現(xiàn)微信自動化操作

    Python+wxauto實現(xiàn)微信自動化操作

    在眾多自動化工具中,Python的wxauto庫以其強大的功能和簡單易用的特點,為我們打開了微信自動化操作的大門,下面我們就來看看它的具體操作吧
    2025-02-02
  • PyTorch環(huán)境配置及安裝過程

    PyTorch環(huán)境配置及安裝過程

    這篇文章主要介紹了PyTorch環(huán)境配置及安裝,本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Python基礎(chǔ)之類的定義和使用詳解

    Python基礎(chǔ)之類的定義和使用詳解

    在Python中,類表示具有相同屬性和方法的對象的集合。在使用類時,需要先定義類,然后再創(chuàng)建類的實例,通過類的實例就可以訪問類中的屬性和方法了。本文就來和大家一起聊聊Python中類的定義和使用,需要的可以參考一下
    2022-08-08
  • 在OpenCV里實現(xiàn)條碼區(qū)域識別的方法示例

    在OpenCV里實現(xiàn)條碼區(qū)域識別的方法示例

    這篇文章主要介紹了在OpenCV里實現(xiàn)條碼區(qū)域識別的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 使用Python和XML實現(xiàn)文件復制工具的完整代碼

    使用Python和XML實現(xiàn)文件復制工具的完整代碼

    在本篇博客中,我們將學習如何使用 wxPython 構(gòu)建一個簡單的文件復制工具,并將文件路徑和目標目錄的配置信息保存到 XML 文件中,通過這種方式,我們可以在下次運行程序時輕松加載之前保存的配置,需要的朋友可以參考下
    2024-08-08

最新評論