Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
Afficher un message après 45min aprèsl'ouverture d'une sessi
Auteur Message
Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
Bonjour,

Je travaille dans une association et nous possédons 5 ordinateurs utilisés comme cybercafé.

L'utilisation est gratuite mais on demande de ne pas l'utiliser plus de 45min afin que tout le monde ait la possibilité d'utiliser un ordinateur.

je ne souahaite pas un programme de cybercafe qui bloque la session après x min, mais je suis à la recherche d'un mini programme ou script qui après l'ouverture de la session affiche un message après 40 min du style : "il vous reste 5 min..." et après 45min "Veuillez vous déconnectez et laisser la place à une autre personne".

Si qqun connait un tel programme ou un script.... (ma connaissance en programmation est proche de zero...)

Merci encore

Karpatt

Infos :

5 postes sous Windows XP Pro
5 compte limité



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
Salut,

Je te propose ma solution en Autoit :
Code:

Opt ("TrayIconHide", 1) ;On masque l'icone autoit
Sleep(1000*60*40) ;On attend 40 minutes
MsgBox(64,"Attention !","Il vous reste 5 minutes d'utilisation de l'ordinateur.") ;On affiche un message
Sleep(1000*60*5) ;On attend 5 minutes
MsgBox(48,"Attention !","Vous avez utilisé l'ordinateur pendant 45 minutes, merci de vous déconnecter.") ;On affiche un message


Lien (temporaire) pour le programme exécutable ici : http://dl.dropbox.com/u/10762003/OrdiMessage.exe

Je ne l'ai pas testée, mais ça devrait marcher. Après, il faut faire en sorte qu'il s'ouvre à chaque démarrage, tu as 2 solutions :

- Soit tu mets le mets dans le dossier de démarrage :
Citation:
%appdata%\Microsoft\Windows\Start Menu\Programs\Startup

-Soit tu mets une clé de registre dans qui contient le chemin de ton programme dans :
Citation:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run


Si tu veux que je change quelque chose au script ou si tu as des questions, demande-moi. moz_smile

A+




______________________________________________________
Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
hello!

à ce que je vois, sablier m'a pris de court Mr. Green
Bon je balance quand même le batch que j'ai fais Wink

Code:
@ECHO OFF
SETLOCAL EnableDelayedExpansion EnableExtensions
SET H_debut=%time:~0,2%
SET Min_debut=%time:~3,2%
SET /a Min_Fin=%Min_debut%+45
SET H_fin=%H_debut%
IF %Min_fin% GEQ 60 (
SET /a H_Fin+=1
SET /a Min_Fin-=60
)
IF %H_fin% GEQ 24 SET /a H_fin-=24
IF %Min_fin% LSS 10 SET Min_FinM=0%Min_fin%
IF %H_fin% LSS 10 SET H_finH=0%H_fin%
TITLE Encore 45 min
ECHO Connect‚ … %H_debut%:%Min_debut%
ECHO.
ECHO Bonjour, Merci de vous d‚connecter dans 45 min affin de laisser la place … une autre personne.
ECHO Merci de vous d‚conecter … %H_fin%:%Min_Fin%
ECHO.
:Boucle_
SET H_cur=%time:~0,2%
SET Min_cur=%time:~3,2%
if %Min_cur% GTR %Min_fin% (
SET /a Tmps=%Min_fin%+60-%Min_cur%
) ELSE (
SET /a Tmps=%Min_fin%-%Min_cur%
)
TITLE  Encore %tmps% min
PING LOCALHOST -n 2 -i 10 -w 5000>NUL
if NOT "%time:~0,5%"=="%H_finH%:%Min_finM%" GOTO :Boucle_
ECHO.
ECHO Les 45 minutes sont écoul‚es
TITLE Temps écoul‚
PAUSE>NUL


Rien de très invasif, mais ça affiche les minutes restantes en temps réel.

Pour le démarage pareil ...

@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
Bonjour
vu que tu as xp pro
tu peux mettre l'un ou l'autre des programmes à l'ouverture de session aussi je pense

Clic droit sur poste de travail gérer
tu dois trouver utilisateurs et profils un truc du genre, tu vas sur le nom de la session et tu l'ouvres dans l'un des onglets tu as la possibilité d'ajotuer l'exe ou le bat




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
Merci pour tout. Je vais essayer tout ca ces prochains jours.

Est-ce que l'un ou l'autre est facilement modifiable pour qqun pas très développeur comme moi ?? Car si on voudrait changer par exemple le temps d'accès de 45 à 30 min, je préfère le modifier quầ chaque fois venir demander qu'on me le modifie.... vous avez des choses bien plus intéressante à faire....


Merci encore



Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
J'ai un peu testé les deux solutions.

La version bat de Darkbatcher a un gros defaut c'est que si l'utilisateur ferme le terminal... plus aucun message s'affiche après les 45 min.

Pour la version en exe... ca fonctionne mais... car il y a toujours un mais... lorsque le premier message s'affiche à 5min de la fin... tant que la personne ne clique pas sur ok... les 5 dernières minutes ne sont pas comptés...

J'ai installé le prog au démarrage en suivant l'idée de la clé de registre, point négatif le prog fonctionne sur tous les comptes. J'ai essayé de suivre ce que tu as dis Laddy... mais pas trouvé ou mettre le fichier

Je fais clique droit sur le poste de travail --> Gérer --> utilisateurs et groupes locaux --> utilisateurs -> j'ouvre le profil souhaiter. La jai 3 onglet : Général, Membre de, Profil. dans l'onglet profil il y a"Script d'ouverture de session". Si j'inscrit ou ce trouve le programme, il me dit que c'est pas un chemin d'accès relatif valable.... jsuis un peu perdu


merci encore de votre aide...



Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
hello!

heu si ça te conviens pas je peux te dévelloper un exe qui ne sera pas arretable
par contre laisse moi un peu de temps, demain ou après demain au plus tard

@+

PS=Je mettrai un *.ini pour te facileter le boulot si jamais tu veux modifer le temps ou fermer automatiquement dès le temps passé




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
Je peux exiger un exe dans les 6 heures.... :-D

non prenez tous votre temps... c'est pas que ca urge...

Merci beaucoup pour l'aide



Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
Avec Autoit il est possible de mettre un timeout pour le MsgBox donc je propose ce code :

Code:
Opt ("TrayIconHide", 1) ;On masque l'icone autoit
Sleep(1000*60*40) ;On attend 40 minutes
$start=TimerInit()
MsgBox(64,"Attention !","Il vous reste 5 minutes d'utilisation de l'ordinateur.",10) ;On affiche un message
$end=TimerDiff($start)
Sleep(1000*60*5-$end*1000) ;On attend 5 minutes - l'intervalle de temps pour le clique
MsgBox(48,"Attention !","Vous avez utilisé l'ordinateur pendant 45 minutes, merci de vous déconnecter.",10) ;On affiche un message
$start=""
$end=""


Sinon on peut aller un peu plus loin en "surveillant" ce que fait l'utilisateur et en l'obligeant à quitter :



Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
Par contre, dans tous les cas, l'utilisateur pourra killer le processus du programme.

Si tu veux que la popup se ferme automatiquement au bout de 30 secondes même si l'utilisateur n'appuie pas sur ok, il faut ajouter un paramètre au msgbox :
Code:
Opt ("TrayIconHide", 1) ;On masque l'icone autoit
Sleep(1000*60*40) ;On attend 40 minutes
MsgBox(64,"Attention !","Il vous reste 5 minutes d'utilisation de l'ordinateur.", 30) ;On affiche un message pendant une 30 secondes.
Sleep(1000*60*4.5) ;On attend 5 minutes
MsgBox(48,"Attention !","Vous avez utilisé l'ordinateur pendant 45 minutes, merci de vous déconnecter.") ;On affiche un message


Pour modifier ce code, il faudra télécharger Autoit qui est disponible dans la section Autoit du forum.

Si tu ne veux pas qu'il s'ouvre dans chaque session, tu peux le mettre dans le "run" du registre spécifique à l'utilisateur. (Je ne peux pas te donner plus de détails, je ne suis pas sur mon ordinateur.)

A+

EDIT : Guerrion m'a dépassé. Mr. Green Oui, c'est une bonne idée d'utiliser un timer, je n'y avais pas pensé, mais je n'aime pas trop utiliser la fonction timer, je code mon timer moi même, je trouve plus compréhensible. Par contre, pourquoi fais-tu ceci ? :
Code:
$start=""
$end=""





______________________________________________________
Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
J'aime bien "vider" mes variables dans mes scripts.

Sinon j'aimerais bien connaître ton timer.



Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
hello!

sablier94 a écrit:
Par contre, dans tous les cas, l'utilisateur pourra killer le processus du programme.


tout est une question de flag dans l'api windows Very Happy déja on peut désactiver le menu système de la fenêtre... et en bloquant certains evenement ça devrait pas poser de problème

Est -ce que les utilisateur ont accès au gestionnaire de tâches ?

@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
Ok mais à la fin du script tes variables sont vidées automatiquement alors ça ne sert pas a grand chose dans ce cas.

Mon timer, je le fais comme ça :
Code:
$TimeSecStart = @SEC + @MIN * 60 + @MSEC / 1000 + @HOUR * 3600 ;On commence à compter le nombre de secondes écoulée pour le script
Sleep(3000) ;On fait une pause de 3 secondes
$TimeSecTotal = Round((@SEC + @MIN * 60 + @MSEC / 1000 + @HOUR * 3600) - $TimeSecStart, 3) ;On calcul le temps passé depuis $TimeSecStart
MsgBox(0,"Time","Le temps écoulé depuis le début du script est de " & $TimeSecTotal & " secondes.") ;On affiche le temps passé





______________________________________________________
Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
hello!

voila l'exe que j'ai promis: http://www.sendspace.com/file/fdiaio

il faut mettre dans le même dossier un fichier time.ini avec dedans:
Code:
[SETTINGS]
temps=45
shutdown=#false
[MSGBOXSTART]
MSG_s_caption=Vous avez 45 minutes
MSG_s_text=Merci de vous déconeter dans 45 minutes pour laisser l'ordinateur à d'autres utilisateur.
[MSGBOX5MIN]
MSG_5_caption=Attention! vouys n'avez plus que 5 minutes
MSG_5_text=Vous n'avez plus que 5 minutes avant de vous déconnecter pour\laisser l'ordinateur à un autre utilisateur;
[MSGBOXEND]
MSG_e_caption=Temps écoulé !
MSG_e_text= Merci de vous déconnecter maintenant pour laisser l'ordinateur\à un autre utilisateur.
[WINDOW]
WindowtextA=Merci de vous déconnecter dans :
WindowtextB=Pour laisser la place à d'autres utilisateurs.


donc tu le modifie comme tu veux... les valeurs corespondent à:

  • Section [SETTINGS]:
    • Temps= duréé en minute du temps de connection donné a chaque utilisateur
    • shutdown= =éteind le pc si c'est egal a '#true' sinon non

  • Section [MSGBOXSTART]:
    • MSG_s_caption= titre de la message box qui s'affiche au lancement du programme
    • MSG_s_text= texte de la message box qui s'affiche au lancement du programme

  • Section [MSGBOX5MIN]:
    • MSG_5_caption= titre de la message box qui s'affiche à 5 minutes de la fin du temps
    • MSG_5_text= texte de la message box qui s'affiche à 5 minutes de la fin du temps

  • Section [MSGBOXEND]:
    • MSG_e_caption= titre de la message box qui s'affiche à la fin du temps
    • MSG_e_text= texte de la message box qui s'affiche à la fin du temps

  • Section [WINDOW]:
    • WindowtextA= Texte qui s'affiche dans la fenètre principale du programme, au dessus du temps en minutes restant
    • WindowtextB= Texte qui s'affiche dans la fenètre principale du programme, au dessous du temps en minutes restant



NB: dans les valeurs qui contienne le mot text, tu peut insérer un retour de chariot avec le caractère '\'

voici le code (c'est du purebasic mais je me suis arrangé pour que ce soit compatible avec la version gratuite)
Code:
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)


;- Window Constants
;
Enumeration
  #Window_0
  #Window_1
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Text_0
  #Text_1
  #Text_2
  #Text_3
  #Timer_0
  #Button_0
  #INI_file
EndEnumeration


; on charge les informations du fichier INI
If Not ReadFile(#INI_File, "Time.ini")
  End 0
EndIf
delay.l=0
Shutdown.b=0
Pos.l=0
MSG_s_caption$=""
MSG_s_text$=""
MSG_5_caption$=""
MSG_5_text$=""
MSG_e_caption$=""
MSG_e_text$=""
WindowtextA$=""
WindowtextB$=""
Repeat
  string$=ReadString(#INI_file)
  Pos=FindString(string$, "=", 0)
  If Pos <> 0
    value$=Mid(string$, 0,  Pos)
    Pos=Pos+1
    param$=Mid(string$, Pos)
      If value$ = "temps="
        delay=Val(param$)
      ElseIf value$ = "shutdown="
        If parm$ = "#true"
          Shutdown=#True
        Else
          Shutdown=#False
        EndIf
      ElseIf value$ = "MSG_s_caption="
        MSG_s_caption$=param$
      ElseIf value$ = "MSG_s_text="
        MSG_s_text$=ReplaceString(param$, "\", Chr(13))
      ElseIf value$ = "MSG_5_caption="
        MSG_5_caption$=param$
      ElseIf value$ = "MSG_5_text="
        MSG_5_text$=ReplaceString(param$, "\", Chr(13))
      ElseIf value$ = "MSG_e_caption="
        MSG_e_caption$=param$
      ElseIf value$ = "MSG_e_text="
        MSG_e_text$=ReplaceString(param$, "\", Chr(13))
      ElseIf value$ = "WindowtextA="
        WindowtextA$=ReplaceString(param$, "\", Chr(13))
      ElseIf value$ = "WindowtextB="
        WindowtextB$=ReplaceString(param$, "\", Chr(13))         
    EndIf
  EndIf   
Until Eof(#INI_file)
; on calcule l'heure de fin
heure_debut=Date()
heure_fin=AddDate(heure_debut, #PB_Date_Minute, delay)
; on affiche la fenètre principale
If OpenWindow(#Window_0, 341, 113, 311, 82, "Reste :" + Str(delay) + " min",  #PB_Window_SizeGadget | #PB_Window_TitleBar )
      TextGadget(#Text_0, 10, 10, 290, 20, WindowtextA$, #PB_Text_Center)
      TextGadget(#Text_1, 10, 30, 290, 20, Str(delay) + " minutes" , #PB_Text_Center)
      TextGadget(#Text_2, 10, 50, 290, 20, WindowtextB$, #PB_Text_Center)
EndIf
; on affiche la MSG box de début
If OpenWindow(#Window_1, 240, 220, 320, 90, MSG_s_caption$,  #PB_Window_SizeGadget | #PB_Window_TitleBar )
      TextGadget(#Text_3, 10, 10, 300, 40, MSG_s_text$, #PB_Text_Center)
      ButtonGadget(#Button_0, 10, 60, 300, 20, "ok")
EndIf
AddWindowTimer(#Window_0, #Timer_0, 60000)
delay=delay-1
Repeat
  Select WaitWindowEvent()
   Case #PB_Event_Timer
        If EventTimer()=#Timer_0
           AddWindowTimer(#Window_0, #Timer_0, 60000)
           Debug a
           SetGadgetText(#Text_1, Str(delay) + " minutes")
           SetWindowTitle(#Window_0, "Reste :" + Str(delay) + " min")
           delay=delay-1         
       EndIf
   Case #PB_Event_Gadget
        If EventGadget()=#Button_0
            CloseWindow(#Window_1)
        EndIf
  EndSelect
If delay=5
  If IsWindow(#Window_1)
    CloseWindow(#Window_1)
  EndIf
  If OpenWindow(#Window_1, 240, 220, 320, 90, MSG_5_caption$,  #PB_Window_SizeGadget | #PB_Window_TitleBar )
      ButtonGadget(#Button_0, 10, 60, 300, 20, "ok")
  EndIf
EndIf
If delay=-1
  CloseWindow(#Window_0)
    If IsWindow(#Window_1)
      CloseWindow(#Window_1)
  EndIf
  Break
EndIf
ForEver
; fin du programme
MessageRequester(MSG_e_caption$, MSG_e_text$, #PB_MessageRequester_Ok)
If Shutdown=#True
  RunProgram("shutdown.exe", "-s -t 60", "c:\")
EndIf


@+

EDIT: version mise à jour après la correction d'un gros bug



Dernière édition par Darkbatcher le Sam 28 Mai 2011 - 17:42; édité 2 fois

______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message Afficher un message après 45min aprèsl'ouverture d'une sessi 
merci beaucoup pour tout !!!

Je vais tester tout ca.... je vous redis...


Ils utilisent des comptes limités normal... donc oui accès au gestionnaire mais pas grave... c'est plus juste un mémo qu'une volonté de contrôle.

merci encore...



Message Afficher un message après 45min aprèsl'ouverture d'une sessi 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch