IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows XP Discussion :

schtasks et session active


Sujet :

Windows XP

  1. #1
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut schtasks et session active
    Bonjour tout le monde

    J'ai créé via un bat une tâche planifiée qui lance un autre .bat toutes les 5 min avec la commande suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    schtasks /create /tn "BlotterCNCE5m" /tr "\"C:\Program Files\BlotterLightCNCE\RFQ_CNCE_Light.bat\"" /sc minute /mo 5 /st 07:30:00
    Tout fonctionne correctement.
    Maintenant, j'aimerais que cette tâche planifiée ne s'exécute que si une session est active.

    Si on fait un clic droit > propriétés sur la tâche, on a une case à cocher "N'exécuter que si une session est ouverte".

    Ma question: comment accéder à cette option via la commande schtasks?
    Question subsidiaire: est-ce que c'est possible de faire en sorte que ma tâche planifiée lance mon .bat en mode minimized?

    Merci

  2. #2
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    Par défaut
    très bonne question, on a le même problème au boulot avec un script de sauvegarde... on a jamais trouvé de solution...
    Bien reçu, tous les messages. Ils disent qu’ils ont compris, qu’il n’y a plus le choix. Que l’esprit qui souffle, guidera leurs pas. Qu’arrivent les derniers temps où nous pourrons parler. Alors soyons désinvoltes, n’ayons l’air de rien

  3. #3
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    est-ce que c'est possible de faire en sorte que ma tâche planifiée lance mon .bat en mode minimized?
    Tu pourras peut-être créer un fichier script(.vbs) qui sera appelé par le batch dont tu parles.

    Dans le fichier script, tu mettras quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim WShell
    Function ExecuterTache()
    .................................
    ................................
    ................................
    End Function
    
    Set WShell=CreateObject("WScript.Shell")
    WShell.Run ExecuterTache,0
    Le zéro (0) à la fin de la dernière ligne permet d'éviter l'affichage de la tâche à exécuter.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  4. #4
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Salut,

    Citation Envoyé par lutecefalco Voir le message
    Ma question: comment accéder à cette option via la commande schtasks?

    d'abord cherches dans l'aide de la commande s'il y a une option qui te permet celà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hh ntcmds.chm::/schtasks.htm
    si non, alors il te faut une condition (écrit "en native" ou "en VBS") à mettre au debut de ton fichier de commandes qui testera si la session est inactive ou pas, ( s'elle est active executer la suite du script sinon terminer ).. maintenant t'as qu'a chercher le code de test d'activité/inactivité de la session

    Citation Envoyé par lutecefalco Voir le message

    Question subsidiaire: est-ce que c'est possible de faire en sorte que ma tâche planifiée lance mon .bat en mode minimized?
    mets ceci au debut de ton fichier de commandes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @If %_%/==/ (set _=_&start/min %Comspec% /c%0&goto:eof) 
    @echo off
    :: suite de ton code
    bonne chance

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par I'm_HERE Voir le message
    Salut,

    d'abord cherches dans l'aide de la commande s'il y a une option qui te permet celà

    mets ceci au debut de ton fichier de commandes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @If %_%/==/ (set _=_&start/min %Comspec% /c%0&goto:eof) 
    @echo off
    :: suite de ton code
    bonne chance
    Oui il y a une commande (/IT) mais qui ne fonctionne pas sous XP.
    Je vais regarder du côté du vbs.

    Ta solution pour ouvrir mon .bat en minimized ne fonctionne pas chez moi

    Merci

  6. #6
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Citation Envoyé par lutecefalco Voir le message

    Ta solution pour ouvrir mon .bat en minimized ne fonctionne pas chez moi
    testes-le indépendement de ton script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @If %_%/==/ (set _=_&start/min %Comspec% /c%0&goto:eof) 
    @dir \ /s 
    pause

  7. #7
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    La fenêtre de commande est bien réduite dans la barre des tâches, mais elle apparait très brièvement à l'écran avant de se réduire. J'aimerais éviter cela (i c'est possible biensûr ) car ça me fait perdre le focus sur la fenêtre sur laquelle je me trouve.

  8. #8
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    dans ce cas tu peux essayer avec un utilitaire tier:

    cmdow.exe

    hstart.exe ou bien combiner ton code avec du VBS un peu comme a fait l_autodidacte
    , en voici un exemple

  9. #9
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    une autre solution,

    c'est de modifier un peu ton code en planifiant l'execution d'un VBS ou JS intermédiaire au lieu de ton BAT, ce qui te permettra d'éviter l'utilisation d'outils tiers

    voici un ex:emple tester sous XPSP2

    d:\hide.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var ohid = WScript.CreateObject("WScript.Shell")
    ohid.Run("cmd.exe /c d:\\fichier.bat",0)
    d:\fichier.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rem un exemple de code
    dir \ /s >d:\tree.txt
    ligne de commandes pour la planification de ta tâche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    schtasks /create /tn "JsExecute" /tr "d:\\hide.js" /sc minute /mo 5 /st 07:30:00
    PS: attention aux caractères "\" et aux espaces dans ton chemin: voici un exemple avec un chemin comportant des espaces:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var ohid = WScript.CreateObject("WScript.Shell")
    ohid.Run("cmd.exe /c \"D:\\Program Files\\Windows Media Player\\fichier.bat\"",0)

  10. #10
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Ca avance. Voilà où j'en suis:

    Mon .bat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @If %_%/==/ (set _=_&start/min %Comspec% /c%0&goto:eof) 
    @echo off
    start "" /MIN "C:\Program Files\Internet Explorer\iexplore.exe" monUrl
    Mon .vbs qui lance le .bat en minimized si la session de l'utilisateur est ouverte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Dim objNet
    On Error Resume Next 
    
    Set objNet = CreateObject("WScript.NetWork") 
    
    'If error occured then quit
    If  Err.Number <> 0 Then                
        WScript.Quit
    End if
    
    'If no user logged on then quit    
    If objNet.UserName = "" Then
        'WScript.Quit
    End If
        
    'Set objNet = Nothing
    
    Set WSHShell = CreateObject("Wscript.Shell")
    Return = WSHShell.Run("""C:\Program Files\BlotterLightCNCE\RFQ_CNCE_Light.bat""", 7, false)
    Cela fonctionne presque.
    Presque car même quand ma session est fermée, objNet.UserName n'est pas vide donc mon .bat se lance quand même.
    Je continue de chercher sur ce dernier point

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Points : 12
    Points
    12
    Par défaut Delais
    Bonsoir.
    J'utilise un petit soft d'intelligence artificiel qui envoie
    des lignes de commandes. Comme:
    "c:/mon_pc/Mes_images/Ma_fille.jpg"
    Cela marche parfaitement en ouvrant la photo. Mais je
    voudrai que cela reste affiché un certain temps avant
    que cela ferme la photo ou l'application. EX:
    taskkill /F /IM notepad.exe blabla mais ferme ça qu'au
    bout de 1mn30
    (Par ex ou autre Je sais que la commande At n'est pas assez
    sophistiquée)

    Amicalement
    Sylvain
    Win7

Discussions similaires

  1. Pb sessions actives et mise à jour SP2 2003R2
    Par jeje62260 dans le forum ASP
    Réponses: 7
    Dernier message: 07/07/2007, 20h40
  2. Sessions actives sur un serveur FTP (IIS)
    Par Tuizi dans le forum Delphi
    Réponses: 1
    Dernier message: 26/06/2006, 10h40
  3. [Sécurité] Nombre de session active
    Par krfa1 dans le forum Langage
    Réponses: 8
    Dernier message: 03/04/2006, 15h05
  4. nombre de sessions actives.
    Par samsso2005 dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 19h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo