根据需要,找到了python库——pywinauto
根据文档,需要连接或启动相关的app。我选择了连接,第一步错误。
app = Application(backend='uia').connect(process='1223')
我将数字用字符串表示!我说句实话,这些文档你不应该注明是什么数据类型吗?
在连接pid失败后,我尝试着用其他仿佛连接,都无法。最后,将pid传递的类型改成数值,而不是字符串,成功。
第二步,选择主窗口,根据文档和网上的例子。仿佛尝试了clas_name,['']等,所有的报错,没有找到了元素。
原因:我使用的是win10自带的“照片”。或许是因为这个软件是uwp,而不是wpf。所以导致了这个库无法找到元素。这当然是后话,我当时只是抱着试试换一个软件的想法。于是换成了ImageGlass.exe
开源的。
之后尝试连接,以及选择主窗口都成功了。
第三步,确定相关的快捷键,一边进行筛选到了不同的文件夹中。这个模块的sendkey()无法实现我的要求。
文档,简单几个字,我TM需要忙活半天。发现sendkey传递的按键竟然并不是连接的应用,而是当前的活动窗口。也就是你明明连接的A应用,但是你要启动python脚本,结果这个按键反馈到了python脚本的启动窗口。
解决办法,我使用了"表达窗口的变量".wait("active").也就是等待连接的应用活动时候,进行按键传送!
第四步,我没有在这个库找到了我按键,然后它执行相关的方法.于是我引入了新的库keyboard.
简单的看了文档,我用keyboard.wait()方法,在哪里等待,然后实现.
的确,第一个按键,实现了命令,但是第二个不行.再看文档,发现它必须等待实现,否则一直阻塞在这里.也就无法执行下一个. 这和我同时监控多个按键的需求相反!于是我试了一下keyboard.add_hotkey()
使用keyboard.add_hotkey(),但是没有反应.我以为这个玩意没用,于是又去找了一圈,看没有其他的方法.但是没有.再回头看文档.
在其他的地方试了一下,这个方法是可行的.但是我的代码为什么不行了.
原因: 之前自己写的代码,将这个玩意给"我也不知道什么原因".反正是,我把这个方法放在了无限循环里面了,然后就没有了反应.
正确做法,在热键方法的最后,添加keyboard.wait()方法.
然后,我需要转移图像,但是如今却反复是之前的一个,结论:
代码结构有问题.我这里反正是忘了设置全局变量给路径,但是函数里面的路径一直在原地打转
标签:脚本,窗口,python,keyboard,文档,按键,一边,连接 From: https://www.cnblogs.com/newy/p/17122404.html