Установка фокуса курсора обратно на Python - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть небольшая программа, которая использует TKinter для открытия CSV.Все работает отлично.

Когда пользователь выбирает файл, я хочу, чтобы курсор и активное окно вернулись в оболочку Python.

Я использую это:

os.system('''/usr/bin/osascript -e 'tell app "Finder" to set frontmost of process "Python" to true' ''')

Когда в IDLE, это работает, когда программа запускается, но когда я просто дважды щелкаю по файлу .py и запускаю его в оболочке Python,он говорит, что не может найти путь.

Кто-нибудь знает путь, который мне нужен?

Спасибо,

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Дальнейшие исследования, и это мое решение.

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)

Надеюсь, это поможет любому, кто ищет то же, что и я.: -)

0 голосов
/ 26 ноября 2018

Попробуйте, это относится к запущенному процессу через 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)
...