Как закрыть браузер? Python

Проблема закрыть уже открытый пользователем браузер через python скрипт.

Если пробую os.system(r"c:\windows\system32\taskkill.exe /im chrome.exe /f"), то скрипт отрабатывает, но при повторном открытии браузер открывается "пустым" и появляется сообщение о восстановлении страницы "Работа Chrome была заверена некорректно. Восстановить." Для работы всего скрипта это не подходит.


Ответы (1 шт):

Автор решения: Алексей Осинный

my_close_process_file.py

import os
import sys

if sys.platform == 'win32':
    import win32gui
    import win32con
else:
    print('установите win32gui и win32con')
    sys.exit()


def window_enum_handler(hwnd, resultList):
    if win32gui.IsWindowVisible(hwnd) and win32gui.GetWindowText(hwnd) != '':
        resultList.append((hwnd, win32gui.GetWindowText(hwnd)))
        
def get_app_list(handles=[]):
    mlst=[]
    win32gui.EnumWindows(window_enum_handler, handles)
    for handle in handles:
        mlst.append(handle)
    return mlst

def start(program_name):
    try:
        if sys.platform == 'win32':
            c_program_name = os.path.basename(program_name).split('.')[0]
            appwindows = get_app_list()
            for app in appwindows:
                if c_program_name.lower() in app[1].lower():
                    win32gui.PostMessage(app[0],win32con.WM_CLOSE,0,0)
                    return
    except:
        pass

try:
    if len(sys.argv) == 2:
        start(program_name = sys.argv[1])
    else:
        pass
except:
    sys.exit(1)

#вызов файла в консоли #my_close_process_file.py "path/to/your/programm.exe"

→ Ссылка