Prozess Pausieren und wieder Starten (Python, Windows)?

Hi, also ich hab mir eine WallpaperEngine von GitHub runtergeladen (https://github.com/Fantoom/WallEngine). An sich Funktioniert sie recht gut, allerdings braucht sie sehr viel Leistung (20-40% meiner GPU). Ich hab bereits ein Python Script gemacht was schaut ob ich ein anderes Fenster maximiert habe, und falls das der Fall ist wird die WallEngine.exe pausiert. Hier mal mein Code:

from win32gui import GetWindowText, GetForegroundWindow
import win32gui
import time
import pygetwindow as gw
import psutil

process_name = "WallEngine"
pid = None
detectedPIDs = 0

for proc in psutil.process_iter():
    if process_name in proc.name():
        pid = proc.pid
        detectedPIDs+=1
        print(pid)

if detectedPIDs == 1:
    pass
else:
    print("Didnt Found the WallEngine Process. Enter Searching Mode ...")
    while detectedPIDs != 1:
        for proc in psutil.process_iter():
            if process_name in proc.name():
                print("Searching Mode Finished. We Found!")
                pid = proc.pid
                detectedPIDs+=1
                print(pid)


print("[INFO] WallpaperEnginePerfomancer Booted.")

allWindows = []


def winEnumHandler(hwnd, ctx, currentlyPaused=None):
    if not win32gui.IsWindowVisible(hwnd):
        # print("Window isnt Visble yet! (" + str(win32gui.GetWindowText(hwnd)) + ")")
        pass
    else:
        rect = win32gui.GetWindowRect(hwnd)
        windowName: str = win32gui.GetWindowText(hwnd)
        x = rect[0]
        y = rect[1]
        w = rect[2] - x
        h = rect[3] - y
        currentScannedWindow = gw.getWindowsWithTitle(windowName)[0]
        if currentScannedWindow.isMaximized:
            if windowName == "" or windowName == None or "Paint 3D" in windowName:
                pass
            else:
                allWindows.append(windowName)


def window_handler():

    p = psutil.Process(pid)

    if len(allWindows) == 0:
        p.resume()
    else:
        p.suspend()

    allWindows.clear()


if __name__ == '__main__':
    while True:
        win32gui.EnumWindows(winEnumHandler, None )
        window_handler()
        time.sleep(0.09)

Alles Funktioniert auch, aber es braucht ca. 8 Sekunden bis die .exe wieder gestartet wurde. Sieht nicht so schön aus, xD. Kennt ihr andere wege als p.suspend() und p.resume(), die schneller sind? Danke im Vorraus und LG!

EDIT:

Der Fehler war das p.resume und p.suspend gespamt wurden, hat Windows wohl nicht so gefallen. Ich hab vergessen eine Variable zu setzen damit ich weiß wann das Programm eingefroren ist und wann nicht. Für jeden der nicht auch Verzweifeln will wegen diesem eigentlich recht einfach Fehler, hier der Code:

https://pastebin.com/Y11LzCPe

Computer, Windows, Prozessor, GPU, Leistung, programmierer, Programmieren, Hintergrund, development, Performance, Python, Wallpaper, github

Meistgelesene Fragen zum Thema Hintergrund