Reputation: 157
I'm looking for a way to set the active window. The only solutions I found are outdated. They included modules like pywinauto
but its focus()
function doesn't work.
I need something that quickly switches/makes another window active.
I tried the code below, but it doesn't work as it says object has no attribute 'focus'
import pygetwindow as gw
win = gw.getWindowsWithTitle('Photoshop')[0]
win.focus()
I am using Windows 8
Upvotes: 5
Views: 18809
Reputation: 29022
Because the accepted answer is only for Windows, here is a Linux solution for most major distributions:
Install PyWinCtl and the dependency tkinter
sudo apt install python3-tk
pip install PyWinCtl
Change the import in the example code from above
import pywinctl as gw
win = gw.getWindowsWithTitle('Signal')[0]
win.activate()
Upvotes: 3
Reputation: 3245
I think the object method you're after is activate
:
>>> help(win.activate)
Help on method activate in module
pygetwindow._pygetwindow_win:
activate() method of
pygetwindow._pygetwindow_win.Win32Window instance
Activate this window and make it the foreground window.
So changing your code as follows should work.
import pygetwindow as gw
win = gw.getWindowsWithTitle('Photoshop')[0]
win.activate()
Upvotes: 4