python模拟键盘输入 切换键盘布局过程解析


Posted in Python onAugust 15, 2019

PostMessage()

def keyHwnd(hwndEx, char):
  """
  向指定控件输入值
  :param hwndEx: 控件句柄
  :param char: 字符串
  :return: True or Flase
  """
  try:
    for _ in char:
      print('key:%s  ascii:%d' % (_, ord(_)))
      win32api.PostMessage(hwndEx, win32con.WM_CHAR, ord(_), 0)
      time.sleep(random.uniform(0,0.2))
  except Exception as e:
    print(e)
    return False
  return True  
hwnd = win32gui.FindWindow(None,'a.txt - 记事本')
print(hwnd)

win32gui.SetForegroundWindow(hwnd)
hwndex = win32gui.FindWindowEx(hwnd,None,'Edit', None)
keyHwnd(hwndex,'撒地方SDFkof;ldsojfdfdsjfd;slkjfdlksjfkldsjflkdsjlkfjkldsljkfjdssj')

切换键盘布局

该功能封装成了一个装饰器,函数执行完恢复了原键盘布局

import win32con
from win32con import WM_INPUTLANGCHANGEREQUEST
import win32gui
import win32api
def setKeyboardLayout_en(inner):
  def wrapper(*args, **kwargs):
    if win32api.LoadKeyboardLayout('0x0409', win32con.KLF_ACTIVATE) == None:
      return Exception('加载键盘失败')
    # 语言代码
    # https://msdn.microsoft.com/en-us/library/cc233982.aspx
    LID = {0x0804: "Chinese (Simplified) (People's Republic of China)",
        0x0409: 'English (United States)'}

    # 获取前景窗口句柄
    hwnd = win32gui.GetForegroundWindow()

    # 获取前景窗口标题
    title = win32gui.GetWindowText(hwnd)
    # 获取键盘布局列表
    im_list = win32api.GetKeyboardLayoutList()
    im_list = list(map(hex, im_list))
    print(im_list)
    oldKey = hex(win32api.GetKeyboardLayout())

    # 设置键盘布局为英文
    result = win32api.SendMessage(
      hwnd,
      WM_INPUTLANGCHANGEREQUEST,
      0,
      0x4090409)
    if result == 0:
      print('设置英文键盘成功!')
    inner(*args,*kwargs)
    result = win32api.SendMessage(
      hwnd,
      WM_INPUTLANGCHANGEREQUEST,
      0,
      oldKey)
    if result == 0:
      print('还原键盘成功!')
  return wrapper

ascii标准码

python模拟键盘输入 切换键盘布局过程解析

keybd_event()

win32api.keybd_event(65, 0, 0, 0)
time.sleep(random.uniform(0, 0.5))
win32api.keybd_event(65, 0, win32con.KEYEVENTF_KEYUP, 0)

microsoft键盘码参考

python模拟键盘输入 切换键盘布局过程解析

python模拟键盘输入 切换键盘布局过程解析

这位兄弟写的关于模拟键盘非常全

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 比较两个数组的元素的异同方法
Aug 17 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
Sep 06 Python
基于python 爬虫爬到含空格的url的处理方法
May 11 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
对numpy.append()里的axis的用法详解
Jun 28 Python
Python实现手写一个类似django的web框架示例
Jul 20 Python
python如何解析配置文件并应用到项目中
Jun 27 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
Feb 26 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
May 18 Python
python基础学习之递归函数知识总结
May 26 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 Python
Python+pyaudio实现音频控制示例详解
Jul 23 Python
django项目登录中使用图片验证码的实现方法
Aug 15 #Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
Aug 15 #Python
解析python的局部变量和全局变量
Aug 15 #Python
python实现的自动发送消息功能详解
Aug 15 #Python
python调用支付宝支付接口流程
Aug 15 #Python
Python使用字典实现的简单记事本功能示例
Aug 15 #Python
Flask框架学习笔记之模板操作实例详解
Aug 15 #Python
You might like
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
DOM 基本方法
2009/07/18 Javascript
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
Python学习资料
2007/02/08 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
python实现超市商品销售管理系统
2019/10/25 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
怎么快速自学python
2020/06/22 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
销售主管岗位职责
2014/02/08 职场文书
大二学习计划书范文
2014/04/27 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
森马旗舰店双十一营销方案
2014/09/29 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
Windows7下FTP搭建图文教程
2022/08/05 Servers