Установка фокуса курсора обратно на Python
У меня есть небольшая программа, которая использует TKinter, чтобы открыть CSV. Все работает отлично.
Когда пользователь выбирает файл, я хочу, чтобы курсор и активное окно вернулись в оболочку Python.
Я использую это:
os.system('''/usr/bin/osascript -e 'tell app "Finder" to set frontmost of process "Python" to true' ''')
В режиме IDLE это работает, когда программа запускается, но когда я просто дважды щелкаю по файлу.py и запускаю его в оболочке Python, он говорит, что не может найти путь.
Кто-нибудь знает путь, который мне нужен?
Спасибо,
2 ответа
Дальнейшие исследования и это мое решение.
import win32gui as wg
from win32gui import GetWindowText, GetForegroundWindow
#This gets the details of the current window, the one running the program
aw = (GetForegroundWindow())
#Do some stuff..
#This tells the program to set the focus on the captured window
wg.SetForegroundWindow(aw)
Я надеюсь, что это поможет кому-то еще искать то же, что и я.:-)
Попробуйте, это относится к запущенному процессу через pid, поэтому не имеет значения, как именно вы его запустили:
import os
pid = os.getpid()
os.system("""/usr/bin/osascript -e 'tell application "System Events" to set frontmost of (first process whose unix id is %d) to true'""" % pid)