python 实现模式鼠标和键盘输入的同时,禁止外部鼠标和键盘命令输入

一、user32下的blockinput方式实现禁止外部命令输入

python代码(使用user32下的方式blockinput方式禁止外部命令输入):

#coding=utf-8
from ctypes import *
import time

#Block All Input
windll.user32.BlockInput(1) 
#模拟鼠标操作
windll.user32.SetCursorPos(100, 100) 
time.sleep(15) 
time.sleep(3)
#Unblock input
windll.user32.BlockInput(0)

注释:AutoItX中也有blockinput,但是在window7下调用不成功:报错为 in BlockInput
    return self._oleobj_.InvokeTypes(16, LCID, 1, (24, 0), ((3, 1),),nFlag
pywintypes.com_error: (-2147352573, '\xd5\xd2\xb2\xbb\xb5\xbd\xb3\xc9\xd4\xb1\xa1\xa3', None, None)


import win32api
import win32gui
import win32con
import time
import ctypes

def click1(x,y):                #第一种
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)

def click2(x,y):               #第二种
    ctypes.windll.user32.SetCursorPos(x,y)
    ctypes.windll.user32.mouse_event(2,0,0,0,0)
    ctypes.windll.user32.mouse_event(4,0,0,0,0)

def click_it(pos):          #第三种
    handle= win32gui.WindowFromPoint(pos)
    client_pos =win32gui.ScreenToClient(handle,pos)
    tmp=win32api.MAKELONG(client_pos[0],client_pos[1])
    win32gui.SendMessage(handle, win32con.WM_ACTIVATE,win32con.WA_ACTIVE,0)
    win32gui.SendMessage(handle, win32con.WM_LBUTTONDOWN,win32con.MK_LBUTTON,tmp)
    win32gui.SendMessage(handle, win32con.WM_LBUTTONUP,win32con.MK_LBUTTON,tmp)

 

二、模式鼠标的方式有如下几种:

参考如下链接:

https://blog.csdn.net/qq_41703291/article/details/80456600

 

 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值