import time
import win32con
import keyboard
import pywintypes # Not used, but need it for win32gui to import correctly
import win32gui
id(pywintypes)
def keep_game_awake(handles: set):
for n in range(60 * 24):
for handle in list(handles):
try:
foreground = win32gui.GetForegroundWindow()
if not foreground:
raise Exception('foreground', foreground)
if foreground != handle:
# win32gui.ShowWindow(handle, win32con.SW_MAXIMIZE)
win32gui.ShowWindow(handle, win32con.SW_MINIMIZE)
# win32gui.SetActiveWindow(handle)
win32gui.SetForegroundWindow(handle)
keyboard.press_and_release('T')
if foreground != handle:
win32gui.SetForegroundWindow(foreground)
except Exception as e:
print(handle, e.args)
if len(e.args) >= 3 and ('No error message is available' != e.args[2]):
handles.remove(handle)
finally:
time.sleep(3)
if not len(handles):
print('exit the loop')
break
time.sleep(60)
#def debug():
# handles = set(filter(
# lambda handle: handle > 0,
# map(lambda title: win32gui.FindWindowEx(None, None, None, title), ['title1', #'title2']),
# ))
#
# print(handles)
#
# win32gui.SetWindowText(
# win32gui.FindWindowEx(None, None, None, '[#] 网易云游戏-光遇-菜单键:Esc [#]'), '[#] 光遇 - 2 [#]'
# )
def get_win_handles(titles: list):
def _ew_callback(handle, ref_result):
title = win32gui.GetWindowText(handle)
if title and (title in titles):
ref_result.append((handle, title))
result = []
win32gui.EnumWindows(_ew_callback, result)
for res in result:
print(*res)
return set(map(lambda t: t[0], result))
if __name__ == '__main__':
keep_game_awake(get_win_handles([
'网易云游戏-光遇-菜单键:Esc',
'[#] 网易云游戏-光遇-菜单键:Esc [#]',
'[#] 网易云游戏-光遇(小米)-菜单键:Esc [#]',
]))
win32gui 自动点击
最新推荐文章于 2024-12-25 23:06:56 发布
本文介绍了一个用Python编写的脚本,通过win32gui模块实现对特定窗口(如网易云游戏-光遇)的监控,保持其在前台活跃状态,每隔一段时间自动切换焦点并按下T键。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Python3.9
Conda
Python
Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本
664

被折叠的 条评论
为什么被折叠?



