python 自动化解决 windows 中英文切换快捷键失效问题

Posted 心随所遇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 自动化解决 windows 中英文切换快捷键失效问题相关的知识,希望对你有一定的参考价值。

windows11 中英文切换快捷键突然没返应了,之前是五笔输入法中文自动上屏,更新过一次后,中英文切换快捷键也失效了。官方也不知道什么时候修复,每次切换都要用鼠标点一下,太麻烦了,于是想用 pthon 自动化模拟鼠标单击。实现逻辑:当程序打开后,监听快捷键 ctrl + space 然后模拟鼠标在任务栏的语言指示图标所在的坐标上单击一下,然后鼠标再退回到原来位置。
我也是边学边做,遇到问题了就查资料,改了几版,最后才成了满意的版本,能在系统托盘运行,方便开启和停止。经过这次实践,感觉 python 越来越好玩了。python 学点基础语法,然后就是边查边学各种工具库的使用,作为工具,基本上这样就可以了。

import pyautogui
import keyboard
import pystray
from PIL import Image

# 打包成 exe
# pyinstaller --noconsole --add-data="d:\\icon.png;." app.py
# --noconsole 不显示 cmd 窗口
# --add-data="d:\\icon.png;." 添加其他资源 将 d:\\icon.png 添加到程序根目录

class App(object):

    def position(self, hotkey=\'ctrl+windows+x\'):
        \'\'\'注册快捷键,获取当前坐标\'\'\'
        keyboard.add_hotkey(hotkey, lambda: pyautogui.alert(pyautogui.position(), title=\'当前坐标\', button=\'OK\'))
        return self

    def switchInput(self):
        \'\'\'中英文切换\'\'\'
        def click():
            x, y = pyautogui.position()
            pyautogui.click(1720, 1056) # 坐标位置,可根据实际情况修改,可通过 position 方法获取坐标
            pyautogui.moveTo(x, y) # 还原位置

        keyboard.add_hotkey(\'ctrl+space\', click) # 注册快捷键
        return self

    def start(self):
        \'\'\' 在系统托盘运行 \'\'\'
        pystray.Icon(\'test\', icon=Image.open(\'icon.png\'), menu=pystray.Menu(
            pystray.MenuItem(\'关闭\', lambda icon, item : icon.stop())
        )).run()

if __name__ == \'__main__\':
    App().position().switchInput().start()

 

转pdf文件自动切白边

pdf文件自动剪裁(自动切白边)

FROM:http://www.ai7.org/wp/html/754.html

下面假设原文件(也就是打算切白边的文件)叫abc.pdf

  1. pdfcrop abc.pdf,默认会生成abc-crop.pdf文件,这个已经是切掉白边的了,要是你不嫌它大(或者它确实不大)的话,就完成了。
  2. 用阅读器(如evince)打开abc-crop.pdf,并通过CUPS打印到文件,打印时注意关闭所有和页面缩放有关的命令,并选中“使用文档的页面尺寸作为页面尺寸”。打印,完成。

说明:

  1. pdfcrop其实是TeXLive自带的。本质上是一个perl脚本。
  2. pdfcrop要调用gs(ghostscript)确定每页的白边大小。对于空白页,会报错,忽略即可。
  3. pdfcrop还可以在切的时候留若干像素,具体请–help。
  4. pdfcrop要调用pdftex以生成切白边后的文件。
  5. pdfcrop本质上(猜想,没有阅读源码)是先将abc.pdf展开成单页的pdf,调用gs切白边,再用tex文件直接调用pdf页面,最后用pdftex生成输出。
  6. pdfcrop直接生成的文件一般是原文件的20倍以上(本人测试的几个文件均是如此),虚拟打印到新的文件后,基本可以恢复到与原文件同样数量级的尺寸。
  7. 测试都是使用的内嵌字体的中英文PDF。扫描版的没试,估计够呛。

 

 

 

附一个类似的eps版工具

首先用下面的命令来去除白边。因为是程序来做的,去除白边的效果甚至比人自己做好:

epstool --copy --bbox input_file.eps input_file_temp.eps

第二步也是最后一步,将eps图像转成pdf,也只需要一行命令

epstopdf --hires --outfile=output.pdf input_file_temp.eps

这样就完成了eps到pdf的转换了。

上述的操作流程可以写成一个脚本

epstool --copy --bbox $1 my_epstopdf_temp.eps

epstopdf --hires --outfile=$2 my_epstopdf_temp.eps

rm my_epstopdf_temp.eps

以上是关于python 自动化解决 windows 中英文切换快捷键失效问题的主要内容,如果未能解决你的问题,请参考以下文章

python 自动化解决 windows 中英文切换快捷键失效问题

selenium3+python自动化7-switch_to总结 (2020-02-14 17:35)

蓝湖:你们要的“自动切图”功能来了!

用于 Python 的快速最大流最小切库

Anaconda 科学计算环境

Windows下Python没有pip的解决办法