Как закрыть eel?

Я хочу зыкрыть браузер и что-бы код продожался

def run():
    @eel.expose
    def end_browser():
        print("YES2")
        eel.end()
        eel.close()
        os._exit(0) 

    eel.init('web')
    eel.start("test.html", size=(700,700))
    

rin()

print("Continue")

Как мне запустить eel закрыть его и продолжить исполнять код?


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

Автор решения: dllx

Можно использовать библиотеку asyncio для запуска кода в асинхронном режиме. А чтобы браузер сразу закрылся можно использовать os.system(R'taskkill /F /IM chrome.exe') Пример:

main.py

import eel
import asyncio
import os

def end():
    os.system(R'taskkill /F /IM chrome.exe')

async def do_somesing():
    V = True
    while V:
        await asyncio.sleep(5)
        print('Doing somesing...')

@eel.expose
def main():
    end()
    asyncio.run(do_somesing())
    
eel.init('web')
eel.start('main.html')

main.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <script type="text/javascript" src="eel.js"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script type="text/javascript">
        async function end() {
            await eel.main()();
        }
        end();
    </script>

</body>

</html>
→ Ссылка