Я имею в виду, эта часть с получением процессов плохаэто занимает много ресурсов компьютера.Пожалуйста, посмотрите.
from subprocess import Popen, PIPE
import PySimpleGUI as sg
import time
counter = 0
while True:
# getting process list
proc = Popen('wmic process', stdout=PIPE, stderr=PIPE)
procList = str(proc.communicate()).lower()
# counter, if time is up, change position.
if counter == 10:
counter = 0
sg.Popup("Move yourself")
# if process exists, wait 5 seconds, process exists only on lockup screen
elif 'logonui.exe' in procList:
time.sleep(5)
# if it doesnt, wait 2 seconds and count 1.
else:
time.sleep(2)
counter += 1
Еще одно решение, использующее psutil, намного быстрее и чувствует себя немного легче.Но я не уверен насчет этой идеи списка.Я создаю список и очищаю его каждый раз ...
import time
import PySimpleGUI as sg
import psutil
procList = ''
counter = 0
while True:
# getting process list
for proc in psutil.process_iter(attrs=['name']):
procList += str(proc.info).lower()
# counter, if time is up, change position.
if counter == 10:
counter = 0
sg.Popup("Move yourself")
# if process exists, wait 5 seconds
elif 'logonui.exe' in procList:
time.sleep(10)
procList = ''
# if it doesnt, wait 2 seconds and count 1.
else:
time.sleep(5)
counter += 1
procList = ''