python代码如何实现切换中英文输入法

 更新时间:2023年11月08日 08:37:51   作者:飞翔的宫保鸡丁  
这篇文章主要介绍了python代码如何实现切换中英文输入法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python代码切换中英文输入法

代码实现切换中英文输入法

from win32con import WM_INPUTLANGCHANGEREQUEST
import win32gui
import win32api

def set_english_inputer():
    # 0x0409为英文输入法的lid_hex的 中文一般为0x0804
    hwnd = win32gui.GetForegroundWindow()
    title = win32gui.GetWindowText(hwnd)
    im_list = win32api.GetKeyboardLayoutList()
    im_list = list(map(hex, im_list))
    result = win32api.SendMessage(hwnd, WM_INPUTLANGCHANGEREQUEST, 0, 0x0409)
    if result == 0:
        print("英文输入法切换成功!")

python万能切换输入法英文状态

# 转换为英文状态
def eng_chin():
    import pyautogui
    from win32clipboard import GetClipboardData, OpenClipboard, CloseClipboard
    from win32con import CF_TEXT
    from win32con import CF_UNICODETEXT
    import subprocess
    # 打开搜索框
    subprocess.run('start ms-settings:search', shell=True)
    # subprocess.Popen(['explorer', 'shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}'])
    pyautogui.press('`')
    pyautogui.hotkey('shift','1')
    pyautogui.hotkey('shift','4')
    pyautogui.hotkey('shift','5')
    pyautogui.hotkey('shift','6')
    pyautogui.hotkey('ctrl','a')
    pyautogui.hotkey('ctrl','c')
    OpenClipboard()  # 读取剪贴板的数据
    clipboard = GetClipboardData(CF_UNICODETEXT)
    CloseClipboard() #关闭
    pyautogui.press('backspace')
    text=clipboard
    if '·' in text and '!'in text and '¥'in text and '%'in text and '……'in text:
        print('当前输入法为中文状态')
        pyautogui.press('shift')  # 切换英文状态
        print('已切换英文状态')
        # 关闭搜索框
        subprocess.run('taskkill /F /IM SearchUI.exe', shell=True)
        return '中文'
    print('当前输入法为英文状态')
    # 关闭搜索框
    subprocess.run('taskkill /F /IM SearchUI.exe', shell=True)
    return  '英文'

eng_chin()

系统 默认输入法,搜狗不能成功

# 指定系统默认输入法,切换中文状态
def input_fa():
    import uiautomation as uia
    import pyautogui
    win = uia.PaneControl(ClassName="Shell_TrayWnd",Name="任务栏")
    retext=win.ButtonControl(ClassName="IMEModeButton").Name
    print(retext)
    if '中文' in retext.replace('\n',''):
        pyautogui.press('shift') #切换状态
    return retext
input_fa()

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python之捕捉异常详解

    Python之捕捉异常详解

    这篇文章主要为大家介绍了Python的捕捉异常,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • Python中那些简单又好用的特性和用法盘点

    Python中那些简单又好用的特性和用法盘点

    这篇文章主要为大家详细介绍了在编写Python代码过程中用到的几个简单又好用的特性和用法,这些特性和用法可以帮助我们更高效地编写Python代码,希望对大家有所帮助
    2024-03-03
  • Tensorflow使用Anaconda、pycharm安装记录

    Tensorflow使用Anaconda、pycharm安装记录

    这篇文章主要介绍了Tensorflow使用Anaconda、pycharm安装记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • windows上安装python3教程以及环境变量配置详解

    windows上安装python3教程以及环境变量配置详解

    这篇文章主要介绍了windows上安装python3教程以及环境变量配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python多进程方式抓取基金网站内容的方法分析

    Python多进程方式抓取基金网站内容的方法分析

    这篇文章主要介绍了Python多进程方式抓取基金网站内容的方法,结合实例形式分析了Python多进程抓取网站内容相关实现技巧与操作注意事项,需要的朋友可以参考下
    2019-06-06
  • Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】

    Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】

    这篇文章主要介绍了Python面向对象程序设计OOP入门教程,较为详细的分析了Python面向对象类,实例,继承,重载等相关概念与使用技巧,需要的朋友可以参考下
    2019-01-01
  • Celery批量异步调用任务一直等待结果问题

    Celery批量异步调用任务一直等待结果问题

    这篇文章主要介绍了Celery批量异步调用任务一直等待结果问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • pandas apply 函数 实现多进程的示例讲解

    pandas apply 函数 实现多进程的示例讲解

    下面小编就为大家分享一篇pandas apply 函数 实现多进程的示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python游戏开发之Pygame使用的最全教程分享

    Python游戏开发之Pygame使用的最全教程分享

    Pygame库是Python中一个专为游戏开发设计的库,它提供了大量的功能来帮助开发者创建各种2D游戏,本文就来和大家分享一下Pygame的具体使用,希望对大家有所帮助
    2023-05-05
  • Python使用sigthief签发证书的实现步骤

    Python使用sigthief签发证书的实现步骤

    Windows 系统中的一些非常重要文件通常会被添加数字签名,其目的是用来防止被篡改,能确保用户通过互联网下载时能确信此代码没有被非法篡改和来源可信,从而保护了代码的完整性、保护了用户不会被病毒、恶意代码和间谍软件所侵害,本章将演示证书的签发与伪造
    2021-06-06

最新评论