Сделать окно приложения самым верхним (активным) окном - PullRequest
0 голосов
/ 26 апреля 2018

Как вы выводите приложение вверху окна.У меня есть два файла Excel, открытых в Excel.Я закрываю первый файл, затем снова открываю его.Но я хочу, чтобы второй файл был самым верхним окном.Как это сделать, не закрывая второй файл и не открывая его снова?Мне нужно сделать это только в win32com.

import time, os.path, os
from win32com.client import Dispatch

path1 = 'C:\\Todolist.xls'
path2 = 'C:\\Todolist2.xlsx'

xla = Dispatch("Excel.Application")
xla.DisplayAlerts = False
xla.Visible = True

xl = Dispatch("Excel.Application")
xl.DisplayAlerts = False
xl.Visible = True

wb1= xla.Workbooks.Open(Filename=path1)
wb2= xl.Workbooks.Open(Filename=path2)

wb1.Close()
time.sleep(3) 
wb1= xl.Workbooks.Open(Filename=path1)
#Need to bring wb2 back as the top most window

1 Ответ

0 голосов
/ 16 мая 2018

Попробуйте это

import win32gui

def windowEnumerationHandler(hwnd, windows):
    windows.append((hwnd, win32gui.GetWindowText(hwnd)))

windows = []
win32gui.EnumWindows(windowEnumerationHandler, windows)
for i in windows:
    if "window_heading" in i[1].lower():
        win32gui.ShowWindow(i[0],5)
        win32gui.SetForegroundWindow(i[0])
        break
...