Как прочитать время входа в систему - уведомление о смене места - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу небольшое приложение для себя для работы.У меня есть стол с регулировкой высоты, поэтому я хочу измерить время входа в систему, и по прошествии одного часа мне нужно уведомление об изменении положения тела в цикле.Поэтому мне нужно:

  • Подсчет времени входа в систему (когда компьютер находится на заблокированном экране, время останавливается.)
  • Всплывающее уведомление - или простой графический интерфейс пользователя

Я знаю основные Java и Python.Я надеюсь, что вы можете дать мне несколько советов.Я хочу узнать, я не пришел сюда за готовым приложением.

Как начать?

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Я имею в виду, эта часть с получением процессов плохаэто занимает много ресурсов компьютера.Пожалуйста, посмотрите.

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 = ''
0 голосов
/ 27 сентября 2018

Если на ваш вопрос "Как мне начать?"тогда я подумал бы, что нужно выбрать направление и начать.
Для этого я бы выбрал Python.Вам просто нужна программа, запускающая это всплывающее окно время от времени.Графический интерфейс прост, понятен.Для этого я бы выбрал PySimpleGUI .
Это 1-строчный код Python для отображения всплывающего окна.

import PySimpleGUI as sg

# do your timer stuff here...
# when time to remind you....
sg.Popup("Get up and move around")

Я думал что-то СУПЕР простое ... показывать сообщение каждые 2 минуты.

import PySimpleGUI as sg
import time

while True:
    time.sleep(2*60)            # wait 2 minutes
    sg.Popup('Get up and move around')
...