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实现list反转实例汇总
Nov 11 Python
Python二维码生成库qrcode安装和使用示例
Dec 16 Python
详解Python的Flask框架中的signals信号机制
Jun 13 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
python opencv之分水岭算法示例
Feb 24 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
Apr 26 Python
matplotlib subplots 调整子图间矩的实例
May 25 Python
python pandas模块基础学习详解
Jul 03 Python
python实现智能语音天气预报
Dec 02 Python
Python捕获异常堆栈信息的几种方法(小结)
May 18 Python
python numpy库np.percentile用法说明
Jun 08 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
splice slice区别
2006/10/09 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
js读写json文件实例代码
2014/10/21 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
微信小程序入门教程
2016/11/18 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
用vue写一个日历
2020/11/02 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
2020/11/09 jQuery
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
Python中的高级数据结构详解
2015/03/27 Python
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
python-str,list,set间的转换实例
2018/06/27 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
python获取Linux发行版名称
2019/08/30 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
Python同时迭代多个序列的方法
2020/07/28 Python
python实现逻辑回归的示例
2020/10/09 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
Invicta手表官方商店:百年制表历史的瑞士腕表品牌
2019/09/26 全球购物
优秀研究生主要事迹
2014/06/03 职场文书
校外活动方案
2014/08/28 职场文书
2014年大学班长工作总结
2014/11/14 职场文书
培训班通知
2015/04/25 职场文书
环保守法证明
2015/06/24 职场文书
培训后的感想
2015/08/07 职场文书
2016简单的租房合同范本
2016/03/18 职场文书