right被定義成常量autopy.mouse.toggle(button=autopy.mouse.Button.RIGHT,down=True)或者

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了邯鄲免費(fèi)建站歡迎大家使用!
autopy.mouse.toggle(autopy.mouse.Button.RIGHT,True)即可
不太記得了。 剛才查了一下。第二個(gè)是一個(gè)回調(diào)函數(shù)。我以前似乎用c++實(shí)現(xiàn)過。不過首先是攔載程序的系統(tǒng)調(diào)用,將程序做某個(gè)系統(tǒng)調(diào)用時(shí),會(huì)自動(dòng)調(diào)用到我們自己人的DLL。這個(gè)叫dll注入。
注入后就開始在windows上加載鍵盤與鼠標(biāo)的hook。記著要調(diào)用next hook。
如果要用python實(shí)現(xiàn)。 可能道理是一樣,如果你只是hook自己的程序沒有問題,如果要hook別的程序還是需要dll注入。
你搜索一下“在python中控制鼠標(biāo)”,這里有一段說明。或者是搜索“Windows hook with Python”
其中調(diào)用的callback函數(shù)是這樣子的
def LowLevelMouseProc( nCode, wParam, lParam ):
還有這樣的
def KeyboardProc(nCode, wParam, lParam):
我附一份在這里好了。
def run():
global KeyBdHook
global messages
KeyBdHook = HHook()
messages = []
start = time.time()
#Record keystrokes for 2 seconds.
while time.time() (start + 2):
KeyBdHook.hook = SetWindowsHookEx(13, KeyboardProc,
GetModuleHandle(0), 0)
if KeyBdHook.hook == 0:
print 'ERROR: '+str(ctypes.windll.kernel32.GetLastError())
UnhookWindowsHookEx(KeyBdHook.hook)
print messages
def KeyboardProc(nCode, wParam, lParam):
""""""
if nCode 0:
return ctypes.windll.user32.GetNextHookEx(KeyBdHook.hook,
nCode, wParam, lParam)
else:
ctypes.windll.kernel32.RtlMoveMemory(ctypes.addressof(KeyBdHook.kStruct),
ctypes.c_void_p(lParam),
ctypes.sizeof(lParam))
messages.append(KeyBdHook.kStruct)
return ctypes.windll.user32.GetNextHookEx(KeyBdHook.hook,
nCode, wParam, lParam)
def SetWindowsHookEx(idHook, lpFn, hMod, dwThreadId):
WinFunc = ctypes.WINFUNCTYPE(c_ulong, c_ulong, c_ulong, c_ulong)
return ctypes.windll.user32.SetWindowsHookExA(idHook, WinFunc(lpFn), hMod, dwThreadId)
def GetModuleHandle(lpModuleName):
return ctypes.windll.kernel32.GetModuleHandleA(lpModuleName)
def UnhookWindowsHookEx(hHook):
return ctypes.windll.user32.UnhookWindowsHookEx(hHook)
class HHook():
def __init__(self):
self.hook = HHOOK
self.kStruct = KBLLHOOKSTRUCT()
class KBLLHOOKSTRUCT(Structure):
""""""
_fields_ = [("vkCode", c_ulong),
("scanCode", c_ulong),
("flags", c_ulong),
("time", c_ulong),
("dwExtraInfo", POINTER(c_ulong))]
python有鼠標(biāo)事件函數(shù),不知道你在什么上做,如果用opencv就是onMouse這個(gè)回調(diào)函數(shù),里面有點(diǎn)擊左鍵這個(gè)事件,獲得該坐標(biāo)點(diǎn)的位置。然后將圖片轉(zhuǎn)換為數(shù)組,找到對(duì)應(yīng)位置,獲取第三維度上的值,就是該點(diǎn)的(RGB通道的)顏色值。方法很多,思路都是大同小異,首先找到該坐標(biāo)點(diǎn)位置,再在對(duì)應(yīng)圖片數(shù)組里獲取它的像素點(diǎn)值。
def?BlockInput(bEnable):
"""?bEnable:
True:?Disable?mouse??keyboard
False:?Enable?mouse??keyboard
"""
import?pyHook
def?uDisable(event):?return?False
def?uEnable(event):?return?True????
hm?=?pyHook.HookManager()
if?bEnable?==?True:
hm.MouseAll?=?hm.KeyAll?=?uDisable
else:
hm.MouseAll?=?hm.KeyAll?=?uEnable
hm.HookMouse()
hm.HookKeyboard()
這里用Python的 pyHook 模塊,寫了個(gè)類似AutoIt中的BlockInput函數(shù)。
pyHook是個(gè)擴(kuò)展模塊,需要另外下載的,具體用法可以參考 pyHook 模塊中的 example.py 。
分享名稱:python控制鼠標(biāo)函數(shù),Python控制鼠標(biāo)
URL標(biāo)題:http://chinadenli.net/article44/dsgsdhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、企業(yè)建站、網(wǎng)站制作、App設(shè)計(jì)、響應(yīng)式網(wǎng)站、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)