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

VB.NET Discussion :

Lancement executable via Tâches planifiées Windows


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 71
    Points : 50
    Points
    50
    Par défaut Lancement executable via Tâches planifiées Windows
    Bonjour à toutes et tous,

    J'ai développé une appli Console en VB.NET, et entres autres cette dernière consigne un certain nombre de choses dans des fichiers logs via les procédures set_LogErr() et set_LogTrait()

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
      Public Sub set_LogTrait(ByVal txt As String)
            Dim sw As StreamWriter
     
            Try
                If Not File.Exists(PathAppli & "\log\traitements.log") Then
                    'Le fichier n'existe pas. On le crée
                    sw = New StreamWriter(PathAppli & "\log\traitements.log")
                    sw.WriteLine(Now.ToString & " : " & txt)
                    sw.Close()
                    sw = Nothing
                Else
                    sw = File.AppendText(PathAppli & "\log\traitements.log")
                    sw.WriteLine(Now.ToString & " : " & txt)
                    sw.Close()
                    sw = Nothing
                    'Remarque : On peut utiliser sw = File.AppendText(NomFichier) pour ajouter
                    'du texte à un fichier existant
                End If
     
     
                'Fermeture streamwriter
                If Not IsNothing(sw) Then sw.Close()
            Catch ex As Exception
    Dim erreur As String
                erreur = "Erreur en fonction set_LogErr :" + ex.Message
     
    Throw New Exception(erreur)
            End Try
     
        End Sub
     
     
        Public Sub set_LogErr(ByVal txt As String)
            Dim sw As StreamWriter
     
            Try
                If Not File.Exists(PathAppli & "\log\exceptions.log") Then
                    'Le fichier n'existe pas. On le crée
                    sw = New StreamWriter(PathAppli & "\log\exceptions.log")
                    sw.WriteLine(Now.ToString & " : " & txt)
                    sw.Close()
                    sw = Nothing
                Else
                    sw = File.AppendText(PathAppli & "\log\exceptions.log")
                    sw.WriteLine(Now.ToString & " : " & txt)
                    sw.Close()
                    sw = Nothing
                    'Remarque : On peut utiliser sw = File.AppendText(NomFichier) pour ajouter
                    'du texte à un fichier existant
                End If
     
     
                'Fermeture streamwriter
                If Not IsNothing(sw) Then sw.Close()
            Catch ex As Exception
    Dim erreur As String
                erreur = "Erreur en fonction set_LogErr :" + ex.Message
     
    Throw New Exception(erreur)
            End Try
     
        End Sub
    Quand je lance l'exe directement, le fichier traitement s'alimente bien. Par contre, j'ai constaté que quand ce même fichier exe est lancé via une tâche planifiée Windows, ce même fichier traitement n'est plus alimenté. Pourtant les traitements prévus par le développement sont bien effectués.
    Sauf que maintenant un plantage est survenu une nuit, et malheureusement le fichier Exception n'a pas bougé...

    D'où ma question : cela pourrait-il venir du fait que l'appli est lancée via une tâche planifiée ?

    Merci pour vos réponses.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par nico1492 Voir le message
    D'où ma question : cela pourrait-il venir du fait que l'appli est lancée via une tâche planifiée ?
    Quand tu lances une appli via les tâches planifiées, il me semble qu'il n'y a pas de path par défaut.

    Il faudrait donc savoir comme tu alimentes ta chaine PathAppli.

    Je pense que le problème vient de là. (il est possible que les fichiers se créent mais pas où tu les attends).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    Ah oui pas bête. En fait le PathAppli est alimenté dans le module comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Private PathAppli As String = Environment.CurrentDirectory
    Du coup il est possible que quand on lance via la tâche planifiée, le CurrentDirectory prenne une autre valeur !

    Je vais vérifier ça, merci.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    Alors en effet, le problème viens du fait que le récupère le dossier courant où l'exe est lancé. Et lorsqu'on lance une tâche planifiée, ce n'est pas l'exe choisi en lui même qui se lance, mais le fichier "taskeng.exe" qui se trouve dans C:\Windows\System32\.

    Du coup mon programme cherchait à créer les fichiers log dans le répertoire C:\Windows\System32\log.

    Merci pour l'idée !

    A +

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancer cygwin via tache planifiée windows
    Par anodaim dans le forum Windows
    Réponses: 6
    Dernier message: 24/09/2012, 10h14
  2. Problème avec les tâches planifiées windows
    Par arnaudperfect dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 19/02/2010, 10h44
  3. [Wamp] Tâche planifiée Windows
    Par ddeee dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 10/07/2007, 17h59

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