Accueil > > > HORAIRESRESTREINTS
HORAIRESRESTREINTS
Information sur la source
Description
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
- # -*- 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()
# -*- 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.
Historique
- 14 octobre 2009 14:48:10 :
- Mise en place d'un bouton info
- 15 octobre 2009 08:17:37 :
- Remise en forme du formatage de sortie
- 15 octobre 2009 19:01:57 :
- Mise à jour des sorties stdout et stderr sur fichier temporaire
- 25 octobre 2009 18:52:05 :
- Mise en place d'un déloggage de session lorsque l'heure maximum est atteinte
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
utilisation de librairie binaire(dll sous windows et sous linux) [ par kollibar ]
comment je peut faire pour créer une dll (en C ou C++ ) et utiliser ses fonctions en python. je sais qu'il y a des contraintes sur l'é
interpreteur sous windows [ par arnohoho ]
hello tous le monde voila je cherche un bon interpreteur python pour windowscomme certain ici programme deja depuis un certain temps il pourront certe
Ouverture d'un fichier windows (avec Tkinter) [ par Uims ]
Bonjour, Je travaille sous python et Tkinter et j'aurai voulu savoir comment dire a python de demarrer (comme on clique sur un fichier) une applicati
creer un executable python à faire fonctionner sous windows [ par marcus034 ]
Bonjour, Nouvel utilisateur de python, je n'arrive pas à exécuter un script python (créé sous idle de mandrake) sous windows
Liste des applications Windows [ par aera group ]
Bonjour,Je cherche à savoir s'il excise un sous programme de Windows qui renvoi la liste des applications ouvertes actuellement. Par exemple, si j'ai
Aide : obtenir des information de Windows [ par aera group ]
Bonjour,je viens de tomber sur un site très interressant sur Python et Windows. Dans ce site, on a tous les codes utiles pour obtenir des information
logiciel pour python [ par Thomeux ]
Bonjour,jusqu'ici je programmais en vb et vb.net, mais comme j'utilise windows et linux, je voudrais que mes programmes soient compatible pour les deu
connexion client/serveur sous linux [ par tsic ]
Bonjour,SVP aidez moi à trouver le code du serveur de connexion.j'ai déjà testé celui de windows et ça a marché. Mais mon encadreur demande un serveur
Comment suspendre un processus sous Windows en passant par ses threads ? [ par ijneb11 ]
Bonjour,Je développe une application 3D en python qui fonctionne sous Linux ET sous Windows. Tout marche (à peu près) bien, excepté un point particuli
Python et Windows Mobile 6 [ par jiyuu ]
Bonsoir à tous,Je me permets de poster ce message pour poser deux questions: *Quelqu'un sait-il comment charger wxPyCE (wxPython pour windows mobile)
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
974 Application Server (12.2.4.0)974 APPLICATION SERVER (12.2.4.0)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP mySongBook Player (1.0.0)MYSONGBOOK PLAYER (1.0.0)mySongBook Player est un logiciel gratuit permettant l'accès à une archive de tablatures/partitio... Cliquez pour télécharger mySongBook Player
|