有些机械性的重复操作可以通过脚本直接替代。
节省时间,且可以持续进行。就如上传文件的时候,总会遇到提示文件重名即替换文件等提示框弹出;
所以有检查应用中是否存在该窗口然后若有则自动点击相应的选项,或则输入快捷键。
通过查阅资料发现可以使用相应的一些库进行操作
如pywin32中的win32con (相关的一些参数以及变量),win32gui(主要用于查找窗口),win32api(windows上的接口);
就如当文件夹下有重复文件的时候,就会弹出替换文件提示。一般操作我们可以通过点击,快捷键等方式进行选择。
接下来会使用Alt + R就行快捷键使用简单例子:
import os
count = 0
from time import sleep
if not os.path.exists(r'.\a.txt'):#检查是否存在文件a.txt,作为启动器
with open(r'.\a.txt', 'w') as f:
status = f.write('start')
while True:#循环判断
with open(r'.\a.txt', 'r') as f:
status = f.read()
print(status)
sleep(2)
if status in ['start']:
hwnd = win32gui.FindWindow(None,"替换或跳过文件")
#通过窗口名字获取句柄
if hwnd:
win32gui.SetForegroundWindow(hwnd)
#ALt + R
win32api.keybd_event(0x12,0,0,0)
win32api.keybd_event(0x52,0,0,0)
win32api.keybd_event(0x12,0,win32con.KEYEVENTF_KEYUP,0)
win32api.keybd_event(0x52,0,win32con.KEYEVENTF_KEYUP,0)
# sleep(0.2)
#键入Enter键
# win32api.keybd_event(13,0,0,0)
# win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP,0)
count = 0
#另一种情况:
hwnd1 = win32gui.FindWindow(None,"???")
if hwnd1:
pass
else:
print("break")
break
可以通过循环来达到不停的检验是否存在改应用窗口的方式。
获取所用应用的句柄及名称
hwnd_title = {}
def get_all_hwnd(hwnd, mouse):
if (win32gui.IsWindow(hwnd)
and win32gui.IsWindowEnabled(hwnd)
and win32gui.IsWindowVisible(hwnd)):
hwnd_title.update({hwnd: win32gui.GetWindowText(hwnd)})
title_list = []
win32gui.EnumWindows(get_all_hwnd, 0)#枚举
for h, t in hwnd_title.items():
if t :
title_list.append(t)
print(h, t)
枚举所有窗口的名称。