python - 如何检查最近是否使用python打开了应用程序?
问题描述
我想知道用户最近何时打开了一个应用程序,例如,如果打开了“notepad.exe”,那么脚本应该能够检测到它最近是否被打开,而无需一次又一次地遍历所有进程。
def checkIfApplicationOpened():
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['name'])
if(pinfo['name'] == 'notepad.exe'):
return True
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
return False
return False
while True:
print(checkIfApplicationOpened())
目前,这是我的方法,但效率很低。有人可以提供更好的方法吗?提前致谢。
解决方案
如何使用 pywinauto 库。
像这样
import pywinauto
pywinauto.timings.wait_until_passes(20, 0.5, lambda: pywinauto.findwindows.find_windows(best_match=u'notepad.exe')[0])
推荐阅读
- android - 为什么 android studio gradle 使用 /sources/ 段下载源位置?但是,nexus maven 在路径中没有 /sources/,所以不匹配
- javascript - 在 for 循环中订阅 observables
- arrays - 在excel中查找最小值和条件的键
- excel-formula - 如何根据另一种单元格颜色格式化单元格颜色
- regex - 使用正则表达式检查一个单词是否出现两次
- dart - 导航器堆栈不起作用
- jenkins - Jenkins 流水线中带有 sed 命令的 Groovy shell 脚本
- javascript - 在反应中,如何使用 onChange 事件定位特定的表行?
- ruby-on-rails - 登录后撤销除一个之外的所有令牌
- docker - Alpine Docker 容器无法将 UPX 识别为可执行文件