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数据结构之图的实现方法
Jul 08 Python
Python之web模板应用
Dec 26 Python
tensorflow建立一个简单的神经网络的方法
Feb 10 Python
python构建深度神经网络(DNN)
Mar 10 Python
python itchat实现调用微信接口的第三方模块方法
Jun 11 Python
python内置模块collections知识点总结
Dec 19 Python
python中return的返回和执行实例
Dec 24 Python
Python3爬虫中Ajax的用法
Jul 10 Python
python进度条显示-tqmd模块的实现示例
Aug 23 Python
Python实现EM算法实例代码
Oct 04 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
Jan 10 Python
python自动化办公操作PPT的实现
Feb 05 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
ThinkPHP的URL重写问题
2014/06/22 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
用javascript实现点击链接弹出"图片另存为"而不是直接打开
2007/08/15 Javascript
页面使用密码保护代码
2013/04/10 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
node.js中的fs.lchownSync方法使用说明
2014/12/16 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
JS精确判断数据类型代码实例
2019/12/18 Javascript
javascript canvas检测小球碰撞
2020/04/17 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
Python模拟登陆实现代码
2017/06/14 Python
python try except 捕获所有异常的实例
2018/10/18 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
2019/05/10 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
python实现简单猜单词游戏
2020/12/24 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
审计工作个人的自我评价
2013/12/25 职场文书
经典广告词大全
2014/03/14 职场文书
五一劳动节活动记录
2014/03/23 职场文书
合作协议书怎么写
2014/04/18 职场文书
旅游活动总结
2014/08/27 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
党员示范岗材料
2014/12/19 职场文书
python中24小时制转换为12小时制的方法
2021/06/18 Python
使用Python获取字典键对应值的方法
2022/04/26 Python