if platform == "darwin": #if on OS X, requires this module: pip install pygetwindow
import pygetwindow as gw
titles = gw.getAllTitles()
print(titles)
win = gw.getWindowsWithTitle('Photoshop')
win.activate()
这是终端中的结果:
['SystemUIServer ', 'Control Centre ', 'Control Centre ', 'Spotlight ', 'Control Centre ', 'SystemUIServer ', 'Control Centre ', 'Window Server Menubar', 'Dock ', 'Photoshop ', 'Terminal ', 'IDLE ', 'Finder ', 'Finder ']
Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
File "/Users/username/Library/Mobile Documents/com~apple~CloudDocs/test.py", line 1237, in clicker1
week_or_month()
File "/Users/username/Library/Mobile Documents/com~apple~CloudDocs/test.py", line 899, in week_or_month
window_focus()
File "/Users/username/Library/Mobile Documents/com~apple~CloudDocs/test.py", line 680, in window_focus
win = gw.getWindowsWithTitle('Photoshop')
AttributeError: module 'pygetwindow' has no attribute 'getWindowsWithTitle'
有没有办法解决这个问题,让焦点集中在窗口'Photoshop'?函数gw.getAllTitles()工作。
我也试过这个(如另一篇文章所述),结果相同:
win = pyautogui.getWindowsWithTitle("Photoshop")
结果:
AttributeError: module 'pyautogui' has no attribute 'getWindowsWithTitle'
3条答案
按热度按时间cl25kdpy1#
这是因为您使用了错误的调用,请尝试查看documentation上的文档或遵循我的示例。
您的错误:
AttributeError: module 'pygetwindow' has no attribute 'getWindowsWithTitle'
试试看
pygetwindow.getWindowsWithTitle('Photoshop') # I dont understand why you need to index into a "list"
如果这不起作用,我会尝试
gw.getAllTitles()
方法。('', 'C:\\WINDOWS\\system32\\cmd.exe - pipenv shell - python'")
而不是(Win32Window(hWnd=131318), Win32Window(hWnd=1050492), Win32Window(hWnd=67206))
9o685dep2#
它似乎与Mac不兼容。activate()方法只传递而不从Github Code做任何事情。
除了getAllTitles、getActiveWindow和getWindowsAt方法之外,它似乎与mac不兼容。其余的方法要么是临时的,要么是不完整的。然而,由于它使用Quartz,我正在研究这一点。
w8f9ii693#
您尝试使用AppleScript命令来激活窗口: