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 Forms Discussion :

[WinService][VB.Net] Quelle alternative à une boucle infinie ?


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Points : 29
    Points
    29
    Par défaut [WinService][VB.Net] Quelle alternative à une boucle infinie ?
    Bonjour

    bon vous etes mon dernier espoir ce soir!!lol
    je suis epuisé et a bout de force , j'en ai marre j'etais pas censé dévelloper enfin bon!!

    j'explique la situation:

    j'ai du retouché un programme qui tournait en continue, ce que j'ai fais avec succès grace a l'aide d'entre vous notamment. Ensuite on m'a demandé finalement de mettre cette application en tant que service.

    je pensais qu'en faisant le tutoriel sur ce sujet ca suffirait mais non!!
    ba oui trop simple

    le service commence a démarré mais bloque en starting

    a mon avis c'est parce que la methode que j'appelle pour lancer ce service contient une boucle infini et du coup ce "main" ne relache jamais la main ce qui empeche a mon avis le service de demarrer correctement

    bon mais du coup il faut visiblement passer par un trigger, un truc qui declenche un timer, je lance mon main en ayant enlever ma boucle,
    le temps est écoulé, il a entre temps relaché le main, et il relance mon main et ainsi de suite.

    Ce serait bien ca mais j'ai aucune idée de comment faire et surtout via le code du service que je ne maitrise aps du tout

    svp si vous avez deja fait ou avez des idées la dessus merci de bien vouloir me donner un coup de patte

    merci

  2. #2
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    non evite les loop infini sont a evitees comme la peste , tu peux peut-etre la remplacer par du multi-thread.

  3. #3
    Membre du Club Avatar de Manralf
    Inscrit en
    Août 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    non evite les loop infini sont a evitees comme la peste , tu peux peut-etre la remplacer par du multi-thread.
    +1

    Windows donne 30 secondes à un service Windows pour se lancer, c'est à dire que la durée d'exécution de ta méthode OnStart ne doit pas dépasser 30 secondes... Lance ton traitement dans un thread à part, ou alors utilise des timers.

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par Manralf
    +1

    Windows donne 30 secondes à un service Windows pour se lancer, c'est à dire que la durée d'exécution de ta méthode OnStart ne doit pas dépasser 30 secondes... Lance ton traitement dans un thread à part, ou alors utilise des timers.
    Le temps de traitement peut être changé heuresement car il y a des services qui demandent bien plus de 30 secondes pour démarrer

    Manu, voici le squelette de base d'un service Windows
    Il faut que ton code fonctionnel soit lancer dans un thread.
    Le Thread sera démarré dans OnStart, et arrêter dans OnStop


    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
     
    Imports System.Threading
     
    Public Class Service1
     
        Private ServiceThread As Thread = New System.Threading.Thread(AddressOf ServiceMain)
     
        Sub ServiceMain()
            'Ton code pour le service avec ta boucle etc..
        End Sub
     
     
        Protected Overrides Sub OnStart(ByVal args() As String)
     
            'Initialisation diverses
            'Si tu as besoin de plus de 30 secondes pour initialisation utilise
            RequestAdditionalTime(60000)
     
            'Demarre ton thread qui lancera ServiceMain
            ServiceThread.Start()
     
        End Sub
     
        Protected Overrides Sub OnStop()
     
            'Arrêt du thread. Méthode brutale non conseillée. 
            'Voir Faq VBNET savoir comment arrêter proprement Thread
            ServiceThread.Abort()
            'Attend la fin du thread
            ServiceThread.Join()
     
        End Sub
     
    End Class

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    merci pour toutes vos réponses!

    Ence qui concerne le thread je ne connias pas bien son fonctionnement
    abelman ton code est il utilisable pour boucler?? J'ai bien fait une boucle infini mais ca empechait le service de démarrer (du donc au 30 secondes merci pour l'info)
    Le thread se relance t'il automatiquement?
    Ou l'utilisation du thread me permet t'elle de garder ma boucle infini?

    merci pour tout

    petite question supplémentaire

    je dois faire une initialisation avant ma boucle donc je comptais mettre ce code dans le onstart au départ. L'ennui est que j'utilise des variables qui sont dans l'initialisation et dans la boucle. Donc si je fais appel à une thread pour lancer ma boucle , comment puis je déclarer mes variables?

    je sais qu'il y a une hsitoire de variable globale mais j'ai fais un test la:
    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
    Private ServiceThread As Thread = New System.Threading.Thread(AddressOf ServiceMain)
     
    Sub ServiceMain()
    'Ton code pour le service avec ta boucle etc..
    System.Console.Out(toto)
    EndSub
    ProtectedOverridesSub OnStart(ByVal args() AsString)
    ' Ajoutez ici le code pour démarrer votre service. Cette méthode doit permettre à votre
    ' service de faire son travail.
    Dim toto AsString
    toto = "robert"
    ServiceThread.Start()
     
     
    EndSub
    
    ba ca ca plante sur le toto dans la thread

    une idée?

  6. #6
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    mais elle te sert a quoi cette boucle infinie????

  7. #7
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par zeavan
    mais elle te sert a quoi cette boucle infinie????
    Bonne question

    Sinon tu peux déplacer tes variables pour qu'elle soit visible de ServiceMain

    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
    Private ServiceThread As Thread = New System.Threading.Thread(AddressOf ServiceMain)
     
    'Tu peux aussi mettre Toto ici
    'Dim toto AsString
    'toto = "robert" 
    Sub ServiceMain()
    'Ton code pour le service avec ta boucle etc..
    Dim toto AsString
    toto = "robert" System.Console.Out(toto)
    EndSub
    ProtectedOverridesSub OnStart(ByVal args() AsString)
    ' Ajoutez ici le code pour démarrer votre service. Cette méthode doit permettre à votre
    ' service de faire son travail.
     
    ServiceThread.Start()
     
     
    EndSub
    Tu débutes en prog apparement, bon courage

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Points : 29
    Points
    29
    Par défaut re
    Mon programme est en fait une interface entre deux logiciel

    un des logiciels depose des fichiers xml dans un dossier

    le deuxieme logiciel a beosin de ces fichiers xml

    mon programme recupere ces ficheirs , les traite et les renvoi au deuxieme logiciel

    ma boucle sert a scanner en permanence ce dossier dans lequel ils sont déposés.

  9. #9
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Pour surveiller les modifications/création de fichiers utilise FileSystemWatcher

    http://faqvbnet.developpez.com/?page=file#file_watcher

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    bon voila un code que j'ai récupéré sur un site de microsoft et il présente des erreurs ou bien c moi qui fait n'importe quoi mais je comprends pas les erreurs qu'ils m'affichent:

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    Imports System.ServiceProcess
    Imports System.Threading
     
    PublicClass Service1
      Inherits ServiceBase
      Dim toto AsString
    
     
      #Region " Code généré par le Concepteur de composants "
      PublicSubNew()
         MyBase.New()
    
         Me.InitializeComponent()
    
      EndSub
    
      ProtectedOverloadsOverridesSub Dispose(ByVal disposing AsBoolean)
        If disposing Then
          If Not (components IsNothing) Then components.Dispose()
    EndIf
        MyBase.Dispose(disposing)
      EndSub
      ' Le point d'entrée principal pour le processus
      <MTAThread()> _
      SharedSub Main()
        Dim ServicesToRun() As ServiceBase
    
        '
        ServicesToRun = New ServiceBase () {New Service1}
        ServiceBase.Run(ServicesToRun)
      EndSub
      'Requis par le Concepteur de composants
      Private components As System.ComponentModel.IContainer
      Friend WithEvents Timer1 As System.Timers.Timer
      <System.Diagnostics.DebuggerStepThrough()> PrivateSub 
    InitializeComponent()
        Me.Timer1 = New System.Timers.Timer
        CType(Me.Timer1, System.ComponentModel.ISupportInitialize).BeginInit()
        '
        'Timer1
        '
        Me.Timer1.Enabled = True
    '
    'Service1
    '
        Me.ServiceName = "Service1"
        CType(Me.Timer1, System.ComponentModel.ISupportInitialize).EndInit()
      EndSub
      #EndRegion
     
    
      PrivateSub Timer1_Elapsed(ByVal toto AsString, ByVal e As System.Timers.ElapsedEventArgs)
     Handles Timer1.Elapsed
     
    ' l'erreur est ici :
        ' Un accès à la propriété doit assigner la propriété ou utiliser sa valeur.
        ' La méthode 'Timer1_Elapsed' ne peut pas gérer l'événement 'Elapsed',
        ' car ils n'ont pas la même signature.
        System.Console.Out(toto) 
     
        ' l'erreur est ici :
        ' Un accès à la propriété doit assigner la propriété ou utiliser sa valeur.
     
      EndSub
      ProtectedOverridesSub OnStart(ByVal args() AsString)
        ' définition de l'intervalle du timer (System.Timer) 
        Timer1.Interval = 50000
        ' Démarrage du Timer 
        Timer1.Start()
        ' Ecrit dans l'EventViewer 
        EventLog.WriteEntry("Mon timer a demarré")
      EndSub
      ProtectedOverridesSub OnStop()
        ' Ajoutez ici le code pour effectuer les destructions
        ' nécessaires à l'arrêt de votre service.
     
      EndSub
    EndClass
    je n'arrive aps à comprendre ces erreursun coup de patte svp?
    merci

    effectivement je débute mais surtout en vb .net en fait le langage orienté objet n'est pas ma tasse de thé, en fait la programmation en général mais on a pas toujours le choix alors on s'y met

    j'apprécie plus les langages type c, pascal assez proche de la machine

    l'orienté objet est très puissant mais il faut connaitre l'api sinon on est foutu et vu que j'ai pas le temps de ma la farcir et pas vraiment l'envie non plus je fais appel à des ames charitable

    je vous remercie beaucoup pour l'aide que vous m'apportez et que vous apportez.
    Encore merci!

    abelman,

    j'ai utiliser une thread, j'ai mis dans celle ci mon programme qui tournait en permanence et qui fonctionnait.

    Le service a donc bien démarré (j'étais content lol)
    Par contre le programme ne fait pas son boulot

    voici le code que j'ai :

    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
    Imports System.ServiceProcess
    Imports System.Threading
     
    PublicClass AdvitiumV8Service
      Inherits ServiceBase
     
      #Region " Code généré par le Concepteur de composants "
     
      PublicSubNew()
        MyBase.New()
          Me.InitializeComponent()
    EndSub
     
    ProtectedOverloadsOverridesSub Dispose(ByVal disposing AsBoolean)
          If disposing Then
            If Not (components IsNothing) Then components.Dispose()
          EndIf
          MyBase.Dispose(disposing)
        EndSub
     
        ' Le point d'entrée principal pour le processus
        <MTAThread()> _
        SharedSub Main()
          Dim ServicesToRun() As ServiceBase
          ServicesToRun = New ServiceBase(){New AdvitiumV8Service}
          ServiceBase.Run(ServicesToRun)
        EndSub
    
    Private components As System.ComponentModel.IContainer
    <System.Diagnostics.DebuggerStepThrough()> PrivateSub InitializeComponent()
          '
          'AdvitiumV8Service
          '
    Me.ServiceName = "AdvitiumV8Service"
        EndSub
     
        #EndRegion
     
        Private ServiceThread As Thread = New System.Threading.Thread
    (AddressOf ServiceMain)
     
        Sub ServiceMain()
          'Ton code pour le service avec ta boucle etc..
          AdvitiumGPNV8.Main()
        EndSub
     
        ProtectedOverridesSub OnStart(ByVal args() AsString)
    ServiceThread.Start()
    EndSub
        ProtectedOverridesSub OnStop()
    ServiceThread.Abort()
        EndSub
      EndClass
    
    AdvitiumGPNV8.Main() lui fonctionne très bien tout seul ca j'en suis sur alors saurai tu ou cela peut coincé. Quand tu me disais de mettre mon code avec ma boucle est ce que c'est bien comme ca que tu me disais de faire, parce que la j'ai créer un module j'ai mis mon programme dedans et je l'appelle par l'intermédiaire du main

    tu peux m'aider stp?

  11. #11
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Oui c'est le chemin à suivre

    AdvitiumGPNV8.Main() contient ta boucle c'est ça?

    Il y a plein de raisons qui peuvent faire que cela ne fonctionne pas

    Tu es sur qu'il ne sort pas de ta boucle?
    Tu as une gestion d'erreur à l'intérieur (try catch)? Si une erreur se produit, le thread s'arrête si tu ne la gères pas
    Ta fonction Main utilise t elle une interface utilisateur winform?
    Tu dis que surveille un répertoire. Est un répertoire réseau? Si oui il faut que le service s'execute avec un compte qui a le droit d'acceder à ce répertoire (Le compte localsystem ne fonctionnera pas dans ce cas)

    @+

  12. #12
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    Pour surveiller les modifications/création de fichiers utilise FileSystemWatcher
    +1

    effectivement il te faut absolument utiliser filesystemwatcher, alors oublie ta boucle.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Points : 29
    Points
    29
    Par défaut re
    Je reponds a tes questions:

    Tu es sur qu'il ne sort pas de ta boucle?
    Lorsque je lancais le programme en application , celle ci tournait parfaitement et tout le temps donc je suppose qu'il ne sortait pas sinon le programme aurait arreter de fonctionner


    Tu as une gestion d'erreur à l'intérieur (try catch)? Si une erreur se produit, le thread s'arrête si tu ne la gères pas
    Il n'y a pas de try catch en tout cas pas sur toute la boucle, je rappelle aussi que je ne fais que reprendre ce code qui a été préalablemnt développer par quelqu'un d'autre (la récupération j'apprécie pas trop en plus) mais le try catch sert si des erreurs interviennent et vu que mon programme fonctionnait je ne pense pas que ce soit cela qui pose problème meme si je suis bien d'accord que le programme serait meilleure avec ceci

    Ta fonction Main utilise t elle une interface utilisateur winform?
    alors la aucune idée de ce que c'est mais il n'y a pas d'interface utilisateur donc je pense pas


    Tu dis que surveille un répertoire. Est un répertoire réseau? Si oui il faut que le service s'execute avec un compte qui a le droit d'acceder à ce répertoire (Le compte localsystem ne fonctionnera pas dans ce cas)
    non le répertoire est en local par contre le programme se connecte à une application mais qui est aussi sur ce serveur donc en local.


    VOILA VOILA

  14. #14
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Je veux bien croire que ton programme fonctionnait avant.
    Mais là il ne fonctionne pas et c'est sur ceci qu'il faut se concentrer si je peux me permettre.

    La différence entre avant et maintenant c'est que tu es dans un Service Windows

    Essaye ceci à tout hasard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ServiceMain()
    'Ton code pour le service avec ta boucle etc..
    try
        AdvitiumGPNV8.Main()
    catch ex as Exception
     
        Dim sw as System.IO.StreamWriter = File.CreateText("c:\erreuradvitiummachin.txt")
        sw.WriteLine(ex.ToString())
        sw.Close()
     
    end try
    EndSub
    Reinstalle et relance le service puis check la présence du fichier erreur

    Citation Envoyé par manu49
    non le répertoire est en local par contre le programme se connecte à une application mais qui est aussi sur ce serveur donc en local.
    VOILA VOILA
    J'ai loupé cette partie ...
    Il se connecte comment à cette autre application?

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    je vais faire ce que tu viens de me dire

    par contre j'ai donné un nom a ma thread avant de la démarrer, parce que je croyais pouvoir identifier celle ci dans le task manager mais je ne la vois pas se lancer

    si on met un nom a la thread elle doit apparaitre ou non dans les processus?

    voila le type de code qui sert a la connection :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    lSessionId = LOGIN_SERVER.Login(lSystemId, lResourceId, lPassword, gProductId, 0)
     
    LOGIN_SERVER = New AdvitiumConnectLib.LoginServer
    PART_SERVER = New AdvitiumAccessLib.PartServer
    ADMVAL_SERVER = New AdvitiumAccessLib.AdmValServer
    il y a d'autre parametre mais je pense que ca te suffira pour comprendre comment ca se connecte

  16. #16
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par manu49
    si on met un nom a la thread elle doit apparaitre ou non dans les processus?
    Euh non pas dans la liste des processus.

    tu peux en mode debug
    Ou voire en utilisant Spy++ si tu l'as dans les Tools de Visual studio

    Astuce pour faire executer ton service en mode debug (pas à pas)

    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
     Sub ServiceMain()
    'Ton code pour le service avec ta boucle etc..
    try
        AdvitiumGPNV8.Main()
    catch ex as Exception
    #if DEBUG=true
        'Force un point d'arrêt
        System.Diagnostics.Debugger.Break()
    #endif
        Dim sw as System.IO.StreamWriter = File.CreateText("c:\erreuradvitiummachin.txt")
        sw.WriteLine(ex.ToString())
        sw.Close()
     
    end try
    EndSub
    Citation Envoyé par manu49
    il y a d'autre parametre mais je pense que ca te suffira pour comprendre comment ca se connecte
    Non pas vraiment mais cela a l'air d'être du TCP. Je ne sais plus si le compte localsystem a le droit de faire des connections TCP

    De toute façon, avec le try catch et le debug pas à pas, tu devrais arriver à savoir pourquoi ça ne fonctionne pas.

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Points : 29
    Points
    29
    Par défaut re
    Bon mais l'avantage (ba oui ce serait trop simple) c'est que je ne peux pas tester mon appli directement sur le serveur, je dévelloppe le service sur un poste et je le place ensuite sur le serveur
    je ne peux pas développer sur le serveur parce qu'il n'y a pas visual studio dessus mais seulement visual basic 2005
    donc pour le pas a pas c mort

  18. #18
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Le débogage à distance existe ...

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Points : 29
    Points
    29
    Par défaut re
    bon c génial!!
    apparemment il manquait juste les chemins complet pour ecrire dans un log, depuis ca fonctionne impéccable!!!
    c'est génial
    merci à tous et surtout a toi abelman pour m'avoir suivi

    une chose est sur je ferai attention a dévelloppé proprement parce que la reprise de code c galère.

    Encore merci

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

Discussions similaires

  1. [VB.net] Declaration variable dans une boucle for
    Par nico10gbb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/05/2006, 11h45
  2. Réponses: 6
    Dernier message: 28/04/2006, 09h16
  3. Select qui fais une boucle infinie
    Par MaitrePylos dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 28/03/2006, 17h29
  4. Réponses: 10
    Dernier message: 24/12/2005, 15h35
  5. [FTP] comment corriger une boucle infinie ?
    Par sofybj dans le forum Langage
    Réponses: 8
    Dernier message: 08/11/2005, 14h49

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