Horairesrestreints

Contenu du snippet

HorairesRestreints est un petit script de débutant qui donne une interface graphique à la commande net user /times de Windows et qui permet rapidement et facilement la mise en place d'horaire d'utilisation de session.

Ce script pêche encore un peu car il ne comprend pas la sortie obligatoire de session si les heures de connexion sont dépassées mais j'y travaille.

Source / Exemple :


# -*- coding: cp1252 -*-
from Tkinter import *
import os
from ScrolledText import *

#definition du traitement
def nom():
    global b
    nom=ent1.get()
    lundi=ent2.get()
    mardi=ent3.get()
    mercredi=ent4.get()
    jeudi=ent5.get()
    vendredi=ent6.get()
    samedi=ent7.get()
    dimanche=ent8.get()

    # seulement le lundi
    commande= []
    if lundi:
        commande.append("net user "+nom+" /times:L," +lundi+" >rep.txt  2>&1 & echo AT "+lundi[-5:]+" /every:lundi \"shutdown -l -t 60 \" >> \"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\"")
        #print commande
    # seulement mardi
    if mardi:
        commande.append("net user "+nom+" /times:Ma,"+mardi+" >rep.txt  2>&1 & echo AT "+mardi[-5:]+" /every:mardi \"shutdown -l -t 60 \" >> \"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\"")
        #print commande
    # seulement mercredi
    if mercredi:
        commande.append("net user "+nom+" /times:Me,"+mercredi+" >rep.txt  2>&1 & echo AT "+mercredi[-5:]+" /every:mercredi \"shutdown -l -t 60 \">>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\"")
        #print commande
    # seulement jeudi
    if jeudi:
        commande.append("net user "+nom+" /times:j,"+jeudi+" >rep.txt  2>&1 & echo AT "+jeudi[-5:]+" /every:jeudi \"shutdown -l -t 60 \">>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\"")
        #print commande
    # seulement vendredi
    if vendredi:
        commande.append("net user "+nom+" /times:v,"+vendredi+" >rep.txt  2>&1 & echo AT "+vendredi[-5:]+" /every:vendredi \"shutdown -l -t 60 \">>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\"")
        #print commande
    # seulement samedi
    if samedi:
        commande.append("net user "+nom+" /times:s,"+samedi+" >rep.txt  2>&1 & echo AT "+samedi[-5:]+" /every:samedi \"shutdown -l -t 60 \">>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\"")
        #print commande
    # seulement dimanche
    if dimanche:
        commande.append("net user "+nom+" /times:d,"+dimanche+" >rep.txt  2>&1 & echo AT "+dimanche[-5:]+" /every:dimanche \"shutdown -l -t 60 \">>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\"")
        #print commande
    # si pas de données
    try:
        for commande in commande:
            a=os.system(commande)
            b=open('rep.txt','r')
        c=os.system("echo del lance.bat>>\"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\"")
    except:
        a=os.system("echo Entrez au moins une valeur !!>rep.txt")
        b=open('rep.txt','r')
    result()

#définition reinitialiser
def reinitialiser():
    global b
    nom=ent1.get()
    if nom:
        commandere="net user "+nom+" /times:all >rep.txt  2>&1 & at /delete /yes & del \"c:\\Documents and Settings\\"+nom+"\\Menu Démarrer\\Programmes\\Démarrage\\lance.bat\""
        print commandere
        a=os.system(commandere)
    else:
        commandere="echo Entrez le nom de la session !!>rep.txt"
        a=os.system(commandere)
    b=open('rep.txt','r')
    result()

# def infos sessions
def infos():
    global b
    nom=ent1.get()
    commande="net user "+nom+" >rep.txt"
    #print commande
    a=os.system(commande)
    b=open('rep.txt','r')
    result()

def result():
    fen1=Toplevel()
    fen1.title("Résultat")
    texte = ScrolledText(fen1, width = 75, height = 5, font = "Arial 10",
    relief = "groove")
    texte.pack()
    #Ecriture des données
    texte.config(state = NORMAL)    #Permettre l'écriture
    texte.insert("1.0", b.read().decode("cp1252"))          #Gestion de l'insertin des lignes
                                    #1 = 1ere ligne  0 = 1er caractere de la ligne
    texte.config(state = DISABLED)  #Interdire les modifications
    #Remettre à zero les entrées
    ent1.delete(0,END)
    ent2.delete(0,END)
    ent3.delete(0,END)
    ent4.delete(0,END)
    ent5.delete(0,END)
    ent6.delete(0,END)
    ent7.delete(0,END)
    ent8.delete(0,END)
    b.close()
    bou4=Button(fen1,text='Fermer',command=fen1.destroy)
    bou4.pack()

#Fenêtre principal
fen=Tk()
fen.title('Horaires V1.0 par S.Pillot')
text1=Label(fen,text='Entrer le nom de la session a limiter : ',fg='red')
text1.grid(column=0,row=0)
ent1=Entry(fen)
ent1.grid(column=1,row=0)
text2=Label(fen,text='Entrer les heures permises selon le modèle suivant : 13:00-20:00')
text2.grid()
text3=Label(fen,text='Lundi',fg='red')
text3.grid(column=0,row=3)
ent2=Entry(fen)
ent2.grid(column=1,row=3)
text4=Label(fen,text='Mardi',fg='red')
text4.grid(column=0,row=4)
ent3=Entry(fen)
ent3.grid(column=1,row=4)
text5=Label(fen,text='Mercredi',fg='red')
text5.grid(column=0,row=5)
ent4=Entry(fen)
ent4.grid(column=1,row=5)
text6=Label(fen,text='Jeudi',fg='red')
text6.grid(column=0,row=6)
ent5=Entry(fen)
ent5.grid(column=1,row=6)
text7=Label(fen,text='Vendredi',fg='red')
text7.grid(column=0,row=7)
ent6=Entry(fen)
ent6.grid(column=1,row=7)
text8=Label(fen,text='Samedi',fg='red')
text8.grid(column=0,row=8)
ent7=Entry(fen)
ent7.grid(column=1,row=8)
text9=Label(fen,text='Dimanche',fg='red')
text9.grid(column=0,row=9)
ent8=Entry(fen)
ent8.grid(column=1,row=9)
bou1=Button(fen,text='Envoyer',command=nom)
bou1.grid(column=2,row=10)
bou3=Button(fen,text='Reinitialiser',command=reinitialiser)
bou3.grid(column=0,row=10)
bou4=Button(fen,text='Infos session',command=infos)
bou4.grid(column=0,row=12)
bou2=Button(fen,text=' Quitter ',command=fen.destroy)
bou2.grid(column=2,row=12)
fen.mainloop()

Conclusion :


C'est un petit script encore en évolution et surtout un petit de débutant alors je prendrais vos remarques avec beaucoup d'interêt.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (lonewolfs)