在python中检测(哪个用户被登录)和(关闭/注销)

2024-04-25 02:16:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个程序(感谢Windows after starting文件夹)在登录后启动,将当前时间写入日志,然后根据输入的名称(字符串)将信息放入日志。你知道吗

这是公平划分时间,我和我的兄弟可以在电脑上(这里不重要),我想让他不可吃(日志是当前的安全)。你知道吗

如果您选择(通过input()),它将关闭或注销您的计算机后,它将结束时间写入日志。你知道吗

同时,它会将当前状态(谁有时间,有多少时间)写入cas.txt(用英语读time.txt)。这是很容易被他和我,你有时我不得不重写它的基础上的日志,因为他“作弊”。你知道吗

日志文件称为zaznam.txt。你知道吗

我想用两种方式升级它:

  • 我想检测哪个用户已登录(因此不需要更多的名称输入=>;我们的名称将在日志中没有例外)
  • 当按下Windows logg out或turn off按钮时,我想启动一个程序,将最后一个pice添加到日志中(这样他就不能删除跳过名称编写然后计算时间的程序)(如果在python中可能的话)或
  • 当程序退出时(按cross/Alt+F4),它将记录用户的日志(如果可能的话)

我的操作系统是Windows7

文件看起来是什么样的(你其实不需要读这个,只是表明我做了一些工作,没有什么可以帮助你回答):

cas.txt(实际时间统计,易于访问)

Tonda 0:00:00
Janek 4 days, 12:01:20

意思是:

my name, my spend time
his name, his spend time

zaznam.txt=log中的一行(他可能不知道或不理解它)注意:它被制表符分隔,所以在这里不太容易看到:/。你知道吗

2015-10-22 11:58:38.024605  Tonda 0:00:00;Janek 3 days, 2:19:31 Janek           2015-10-22 12:37:59.020734  Tonda 0:00:00;Janek 3 days, 2:58:51
>>>>>>>time started<<<<<<<  >>>>>what "cas.txt" looked like<<<< >inputed name<  >>>>>>>>time ended<<<<<<<<  >>>what "cas.txt" now looks like<<<

还有一个计划(我不认为这对不说捷克语的人来说很清楚):

import datetime
import time

a = datetime.datetime.today()

###
zaznam = open("zaznam.txt", 'a')

zaznam.write("\n")

zaznam.write(str(a))

oldcas = open("cas.txt", "r").read().replace("\n", ";")
print(oldcas)
zaznam.write("\t" + oldcas)
zaznam.close()
###

jmeno = None
while (jmeno != "Tonda") and (jmeno != "Janek"):
    jmeno = input("Zadej jméno (Janek/Tonda):\n")

###
zaznam = open("zaznam.txt", 'a')
zaznam.write("\t" + jmeno)
zaznam.close()
###

turnoff = input("Zmáčkni enter pro ukončení a něco před tím napiš, pokud chceš vypnout PC")

b = datetime.datetime.today()

###
zaznam = open("zaznam.txt", 'a')
zaznam.write("\t" + str(b))
zaznam.close()
###

soubor = open("C:/Users/Tonda_2/Documents/Python/Cas/cas.txt", "r")
radek1, radek2 = soubor.read().split("\n")
soubor.close()

Tday, Jday = 0, 0
if " day, " in radek1:
    Tday, Tcas = radek1.split(" day, ")
    Tonda, Tday = Tday.split()
    Tday = int(Tday)
elif " days, " in radek1:
    Tday, Tcas = radek1.split(" days, ")
    Tonda, Tday = Tday.split()
    Tday = int(Tday)
else:
    Tonda, Tcas = radek1.split(" ")

if " day, " in radek2:
    Jday, Jcas = radek2.split(" day, ")
    Janek, Jday = Jday.split()
    Jday = int(Jday)
elif " days, " in radek2:
    Jday, Jcas = radek2.split(" days, ")
    Janek, Jday = Jday.split()
    Jday = int(Jday)
else:
    Janek, Jcas = radek2.split(" ")

Th, Tm, Ts = Tcas.split(":")
Jh, Jm, Js = Jcas.split(":")


Th, Tm, Ts, Jh, Jm, Js = int(Th) + 24*Tday, int(Tm), int(Ts), int(Jh) + 24*Jday, int(Jm), int(Js)

Tuhrano = datetime.timedelta(hours = Th, minutes = Tm, seconds = Ts)
Juhrano = datetime.timedelta(hours = Jh, minutes = Jm, seconds = Js)

uhrano = b - a

if jmeno == "Tonda":
    Tuhrano += uhrano
if jmeno == "Janek":
    Juhrano += uhrano


Tday, Jday = 0, 0
if " day, " in str(Tuhrano):
    Tday, Tuhrano = str(Tuhrano).split(" day, ")
    Tday = int(Tday)
if " days, " in str(Tuhrano):
    Tday, Tuhrano = str(Tuhrano).split(" days, ")
    Tday = int(Tday)
if " day, " in str(Juhrano):
    Jday, Juhrano = str(Juhrano).split(" day, ")
    Jday = int(Jday)
if " days, " in str(Juhrano):
    Jday, Juhrano = str(Juhrano).split(" days, ")
    Jday = int(Jday)
print()
print(Tuhrano)
print(Juhrano)
print()
Th, Tm, Ts = str(Tuhrano).split(":")
Jh, Jm, Js = str(Juhrano).split(":")

Tsec, Jsec = Ts.split("."), Js.split(".")
Ts, Js = Tsec[0], Jsec[0]

Th, Tm, Ts, Jh, Jm, Js = int(Th) + 24*Tday, int(Tm), int(Ts), int(Jh) + 24*Jday, int(Jm), int(Js)


if not "-" in str(datetime.timedelta(hours = Th - Jh, minutes = Tm - Jm, seconds = Ts - Js)):
    Tondauhral = datetime.timedelta(hours = Th - Jh, minutes = Tm - Jm, seconds = Ts - Js)
    Janekuhral = "0:00:00"

else:
    Tondauhral = "0:00:00"
    Janekuhral = datetime.timedelta(hours = Jh - Th, minutes = Jm - Tm, seconds = Js - Ts)

print("Tonda", Tondauhral)
print("Janek", Janekuhral)


soubor = open("C:/Users/Tonda_2/Documents/Python/Cas/cas.txt", "w")
soubor.write("Tonda" + " " + str(Tondauhral) + "\n" + "Janek" + " " + str(Janekuhral))
soubor.close()

###
zaznam = open("zaznam.txt", 'a')
oldcas = open("cas.txt", "r").read().replace("\n", ";")
zaznam.write("\t" + oldcas)
zaznam.close()
###



import os
if turnoff == "":
    os.system("shutdown -l")
else:
    os.system("shutdown -s -f")
#import subprocess
#subprocess.call(["shutdown /l", "-f", "-s", "-t", "5"]) #subprocess.call(["shutdown.exe", "-f", "-s", "-t", "5"])

Tags: txtdatetimeifjsdaysintsplitts