none
interrompre l'arrêt de windows. RRS feed

  • Question

  • Salut,

    J'ai créer un petit programme qui est démarrer avec windows et qui doit normalement interrompre l'arrêt de windows et si il y a une clé usb ou un disque dur externe branché  attendre le temps que je les éjectes.

    mais mon code ne fonctionne pas et windows 7 arrête tout les processus et s'éteint ...

     

    Declare Function AbortSystemShutdown Lib "advapi32.dll" Alias "AbortSystemShutdownA" (ByVal lpMachineName As String) As Integer
    
    
    
    
    
     Private Const WM_QUERYENDSESSION As Integer = &H11
    
     Private arretwin As Boolean = False
    
     Protected Overrides Sub WndProc(ByRef sw As System.Windows.Forms.Message)
    
      If sw.Msg = WM_QUERYENDSESSION Then
    
       arretwin = True
    
       
    
       AbortSystemShutdown(0)
    
    
    
       detection_disk.Start()   
    
       msgbox("test") 
    
      Else
    
       MyBase.WndProc(sw)
    
      End If
    
     End Sub
    
    
    
    

    mon programme détecte l'arrêt de windows car il affiche mon msgbox "test" mais windows s'éteint après

    et pour comblé le tout je ne sais pas si j'appel bien l'API et si l'API est correcte et fonctionne sous windows 7 ..

    Merci de votre aide.

     

     

    vendredi 7 janvier 2011 00:01

Réponses

  • Bonjour,

    Essaye avec ceci :


       'constants needed, form level
         Private Const WM_QUERYENDSESSION As System.Int32 = &H11
         Private Const WM_CANCELMODE As System.Int32 = &H1F
    
         'the sub to intercept the windows messages
         Protected Overrides Sub WndProc(ByRef ex As Message)
           If ex.Msg = WM_QUERYENDSESSION Then
             'cancel the message
             Dim MyMsg As New Message
             MyMsg.Msg = WM_CANCELMODE
             MyBase.WndProc(MyMsg)
           Else
             'send the message as normal
             MyBase.WndProc(ex)
           End If
         End Sub 
    

    Cordialement,

    Thomas


    Thomas Aimonetti - C# - Sharplog Engineering - http://www.sharplog.fr
    • Proposé comme réponse EhJoe vendredi 7 janvier 2011 11:45
    • Marqué comme réponse Benny03 dimanche 16 janvier 2011 21:11
    vendredi 7 janvier 2011 09:16
  • Non, chez moi je n'ai aucune de ces deux clés.

    D'après l'article que j'ai indiqué, cela veut dire que Windows va "tuer" les applications au bout de 2 secondes. Cela explique sans doute à la fois que l'arrêt ne puisse pas être empêché ainsi que sans doute le problème avec les clés USB.

    Supprime ces clés de registre et vois ce que cela donne. A l'arrêt Windows va alors fermer les clés USB et attendra la fin de cette fermeture (ou peut-être 12 à 20 secondes je crois par défaut ce qui devrait être suffisant) au lieu de tout interrompre au bout de 2 secondes.

    Du coup faire un programme qui empêche l'arrêt de Windows deviendra sans doute inutile (et ne marchait pas car Windows était configuré pour le "tuer" au bout de 2 secondes).


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Marqué comme réponse Benny03 dimanche 16 janvier 2011 21:10
    dimanche 16 janvier 2011 13:35
    Modérateur

Toutes les réponses

  • Bonjour,

    Essaye avec ceci :


       'constants needed, form level
         Private Const WM_QUERYENDSESSION As System.Int32 = &H11
         Private Const WM_CANCELMODE As System.Int32 = &H1F
    
         'the sub to intercept the windows messages
         Protected Overrides Sub WndProc(ByRef ex As Message)
           If ex.Msg = WM_QUERYENDSESSION Then
             'cancel the message
             Dim MyMsg As New Message
             MyMsg.Msg = WM_CANCELMODE
             MyBase.WndProc(MyMsg)
           Else
             'send the message as normal
             MyBase.WndProc(ex)
           End If
         End Sub 
    

    Cordialement,

    Thomas


    Thomas Aimonetti - C# - Sharplog Engineering - http://www.sharplog.fr
    • Proposé comme réponse EhJoe vendredi 7 janvier 2011 11:45
    • Marqué comme réponse Benny03 dimanche 16 janvier 2011 21:11
    vendredi 7 janvier 2011 09:16
  • Salut Thomas et merci de ta réponses car elle fonctionne mais sous windows xp

     

    désolé si je suis si difficile mais pour ne pas arrangé les choses j'ai windows 7 et il s'éteint sans problème en 2 secondes ... :'-(

     

    voila, maintenant ce n'est peut-être pas possible avec windows 7.

     

    Merci de votre aide.

    vendredi 7 janvier 2011 19:37
  • Le system continu l'arret parceque vous n'utilisez pas la function  ShutdownBlockReasonCreate pour specifier la raison pour laquelle votre application provoque l'interruption de l'arret
    samedi 8 janvier 2011 20:59
  • Salut,

    Merci pour votre réponses je vais commencé par chercher pas la ... ;-)  

    et je vous dis quoi.

     

    Edit : Après 15 minnute de recherche  et 1h45 de test j'ai découvert que soit je n'utilise pas bien la fonction ShutdownBlockReasonCreate soit il manque quelle que chose a mon code ... 

    pour que ShutdownBlockReasonCreate fonctionne il faut retourner FALSE au message WM_QUERYENDSESSION si non Windows ne vous demandera jamais pourquoi interrompre l'arrêt j'ai donc appelé la fonction après  "MyBase.WndProc(MyMsg)"

    et ca donne cela

      

     'constants needed, form level
    Declare Function ShutdownBlockReasonCreate Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal reason As String) As Boolean
    
       Private Const WM_QUERYENDSESSION As System.Int32 = &H11
       Private Const WM_CANCELMODE As System.Int32 = &H1F
    
       'the sub to intercept the windows messages
       Protected Overrides Sub WndProc(ByRef ex As Message)
        If ex.Msg = WM_QUERYENDSESSION Then
         'cancel the message
         Dim MyMsg As New Message
         MyMsg.Msg = WM_CANCELMODE
         MyBase.WndProc(MyMsg)
         ShutdownBlockReasonCreate(Me.Handle, "Mon message")
        Else
         'send the message as normal
         MyBase.WndProc(ex)
        End If
       End Sub

    et quand je clique sur arrêter Windows mon programme est fermé en premier ....

    sans message "Les programmes suivants sont toujour en cours d'execution : Form1 : Mon message"

     

    Merci de votre aide


     

    dimanche 9 janvier 2011 15:10
  • Bonjour,

     

    Pourquoi ne pas lancer une commande DOS qui arrete le shutdown:

    shutdown -a

     Shell("shutdown -a", AppWinStyle.NormalFocus, False, -1)


    fred
    lundi 10 janvier 2011 10:47
  • Salut Fred75, je n'utilise pas cette commande DOS car elle ne fonctionne pas ....

     j'ai un message

    shutdown erreur N° -----

    et l'ordi s'éteint

    aussi avec

    Process.Start("shutdown.exe", "-a"),

    donc je cherche une autre solution ...

    Merci de votre aide.

    lundi 10 janvier 2011 18:02
  • Bonjour,

     

    Si la solution de monsieur Microsoft ne fonctionne pas je crains qu'il n'existe pas, pour l'instant, de solution.

    http://msdn.microsoft.com/fr-fr/library/microsoft.win32.systemevents.sessionending.aspx (voir le code plus haut)

     

     


    Cordialement, Troxsa
    • Proposé comme réponse TroxsaEditor mardi 11 janvier 2011 21:44
    lundi 10 janvier 2011 20:53
    Auteur de réponse
  • Salut Troxsa, j'ai bien les 2 messages et j'ai le temps de répondre aux messages  mais après avoir répondu Oui au message suivant

    "Do you want to save your work before logging off?"
    

    windows affiche un fond bleu transparent (normale) avec la "liste des programmes encore en cours d'exécution" mais la liste est vide et windows s'éteint .

    je ne sais pas si c'est mon windows 7 qui fait cela ou TOUTE les version de windows 7 qui ont ce "problème".

     

    Tanpis si il n'y a pas de solution encore connue pour windows 7, j'utiliserais un autre programme que le mien ...

    Encore Merci de votre aide ;-)

    P.S: je ne sais pas si c'est normale ou si c'est la traduction qui fait ça mais il manque

     MyBase.WndProc(m) après le end if

    la il est compris dans le commentaire :

    ' If this is WM_QUERYENDSESSION, the closing event should be raised in the base WndProc.  MyBase.WndProc(m)

    ça ne fonctionne pas tres bien comme commentaire ^^

    lundi 10 janvier 2011 21:46
  • Bonjour Benny,

    J'ai trouvé un article sur comment bloquer l'arrêt de Windows Vista.

    Je n'ai pas pu tester moi-même mais manifestement si cela marche sous Vista, il ne semble pas très sûr que cela marche sous Seven ...

    Donc bon, a tester, sans trop de conviction tout de même ...

    Je laisse quand même l'article : http://community.bartdesmet.net/blogs/bart/archive/2006/10/25/Windows-Vista-_2D00_-ShutdownBlockReasonCreate-in-C_2300_.aspx

    Il y a une démo avec du code, donc tu peux déjà la faire tourner, si jamais elle fonctionne sous Windows 7, cela sera une bonne base pour travailler, sinon ben je crois que c'est foutu pour l'instant.

    Cordialement,

    Thomas

    PS : le code est en C#, mais il existe un excellent traducteur de C# vers VB.Net sur DeveloperFusion : http://www.developerfusion.com/tools/convert/csharp-to-vb/


    Thomas Aimonetti - C# - Sharplog Engineering - http://www.sharplog.fr
    • Proposé comme réponse Alex Petrescu mardi 11 janvier 2011 13:49
    mardi 11 janvier 2011 12:33
  • Bonjour,

     

    J’ai trouvé le même thread que Thomas et je l’ai teste pour une application C#. Il fonctionne parfaitement. J’ai créé un FAQ en Français à partir de ce code et je l’ai poste dans le forum C# :

    Comment faire une application C# pour interrompre l’arrêt de Windows

     

    Le truc est qu’on doit appeler la fonction ShutdownBlockReasonCreate avant l’arrêt de Windows et pas dans la méthode WndProc, pour avoir déjà le « block » en place.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     


    Suivez MSDN sur Twitter 

    mardi 11 janvier 2011 13:49
  • Salut,

    je crois qu'il n'y a pas de solution a mon problème car j'ai traduis le code en vb et cela ne fonctionne pas sur mon ordinateur, mon programme est même fermé en premier ...

    j'ai donc créer un nouveau projet avec un textbox et 2 bouttons

    je clique sur le bouton bloking j'ai un message

    Shutdown blocking succeeded

    je clique sur Arrêter, le "programme" se ferme et windows s'éteint

    voici le code que j'ai utiliser :

    Public Class Form1
     Private Declare Function ShutdownBlockReasonDestroy Lib "user32.dll" (ByVal hWnd As IntPtr) As Boolean
     Private Declare Function ShutdownBlockReasonCreate Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal reason As String) As Boolean
     Private Const WM_QUERYENDSESSION As System.Int32 = &H11
     Private Const WM_CANCELMODE As System.Int32 = &H1F
     'the sub to intercept the windows messages
     Protected Overrides Sub WndProc(ByRef ex As Message)
      If ex.Msg = WM_QUERYENDSESSION Then
       'cancel the message
       Dim MyMsg As New Message
       MyMsg.Msg = WM_CANCELMODE
       MyBase.WndProc(MyMsg)
      Else
       'send the message as normal
       MyBase.WndProc(ex)
      End If
     End Sub
     Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
       e.Cancel = True
     End Sub
     Private Sub Bloking_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bloking.Click
      If (ShutdownBlockReasonCreate(Me.Handle, TextBox1.Text)) Then
       MessageBox.Show("Shutdown blocking succeeded")
      Else
       MessageBox.Show("Shutdown blocking failed")
      End If
      MessageBox.Show("Shutdown blocking succeeded")
     End Sub
     Private Sub Unbloking_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Unbloking.Click
      If (ShutdownBlockReasonDestroy(Me.Handle)) Then
       MessageBox.Show("Shutdown unblocking succeeded")
      Else
       MessageBox.Show("Shutdown unblocking failed")
      End If
     End Sub
    End Class
    

    voila, a mon avis il n'y a pas de solution a mon problème , c'est pas grave ...

     

    Merci ;-)

    mardi 11 janvier 2011 21:20
  • Bonjour,

     

    J’ai testé votre code VB et il fonctionne aussi que la version C# sur mon PC. Est-ce que vous êtes administrateur sur votre PC ?

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     


    Suivez MSDN sur Twitter 

    jeudi 13 janvier 2011 10:10
  • Bonjour,

    Personnellement j'ai pas essayé comme là fait Alex, mais je pense que si ça fonctionne sur sa machine il n'y a pas de raison que cela ne fonctionne pas sur d'autre !
    Sur les machines sur les quelles vous faites des testes sont elles à jour ?

    A bientot

     


    Cordialement, Troxsa
    jeudi 13 janvier 2011 16:51
    Auteur de réponse
  • Salut Alex,

    oui je suis administrateur de mon ordinateur et mon ordi est à jour mais j'ai plus eu de mise à jour depuis quelque mois ... c'est peut-être normale ...

    j'ai windows 7 familiale premium mais a mon avis cela ne change rien ...

    je ne sais pas pour quelle raison rien ne fonctionne pour interrompre l'arrêt de windows ...

    jeudi 13 janvier 2011 20:01
  • Bonjour,

    Le code VB semble différent des solutions C# proposées. Par exemple le message WM_ENDSESSION n'est pas bloqué et le blocage est fait en envoyant un autre message alors que le message est purement et simplement ignoré dans le code C#.


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    vendredi 14 janvier 2011 10:26
    Modérateur
  • Salut Patrice, la chose qui pause problème c'est que mon système d'exploitation est windows 7

    car la code de Thomas fonctionne super bien mais sous windows XP

    Maintenant le message pour bloquer l'arrêt de windows 7 et XP n'est peut-être pas le même, je ne sais pas ...

    a mon avis c'est peut-être mon windows 7 qui a des problèmes ... je ne sais pas non plus c'est bizzard ... .

    vendredi 14 janvier 2011 20:14
  • Et que donne tout simplement :

    Public Class Form1
      Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        If e.CloseReason = CloseReason.WindowsShutDown Then
          MsgBox("Non !")
          e.Cancel = True
        End If
      End Sub
    End Class
    

    Chez moi le message "Non !" s'affiche et après clique sur le bouton j'ai bien la liste des applis avec pour celle ci le message par défaut style "Cette application empêche Windows de s'arrêter." Je suis également sur une "Familale Premium".

    C'est bien un arrêt et pas une mise en veille ? Eventuellement lancer aussi directement le fichier EXE si le test est actuellement fait directement depuis VS.

    Sinon je ne vois effectivement pas et c'est probablement un réglage spécifique à cette machine...

    En relisant le fil, je remarque également grâce à la mention d'une question oui/non avec un message "Do you want to save your work before logging off ?" que le code montré n'est pas celui réellement exécuté. Il est préférable de toujours tester une application qui ne fait que cela et qui est très exactement le code que tu nous montres. Si le code n'est pas identique il y a toujours la possibilité d'une différence qui change ce comportement et que nous ne pourrons jamais comprendre faute de voir un code absolument identique à celui que tu exécutes.

    Si le but est de faire qq chose automatiquement à la fermeture de l'appli je le mettrais dans le formclosing sans interrompre l'arrêt de Windows (à priori Windows attends que l'application se ferme avant de continuer). Bloquer l'arrêt est intéressant si une opération longue est en cours et ne doit pas être interrompue. Ici on dirait plutôt que l'on veut avoir le temps de faire avant l'arrêt qq chose qui ne prendra pas beaucoup de temps ce qui n'est pas un blocage de l'arrêt de Windows mais juste une gestion de l'évènement "fermeture de l'application".


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    samedi 15 janvier 2011 16:01
    Modérateur
  • Salut Patrice,

    Ton code tout simple ne fonctionne pas chez moi ... j'ai le message "Non !" quand je clique sur (démarrer => Arrêter) mais dés que j'ai cliquer sur OK la form qui est vide se ferme,

    après j'ai bien un "message" (Cette application empêche Windows de s'arrêter) mais il n'y avait rien dans la liste ... et elle est apparue 2 secondes.

    le but de mon programme est d'interrompre l'arrêt de windows puis d'analyser si il y a une clé usb, si il ne trouve rien il arrête windows et le seul problème que j'ai avec XP c'est que si il ne détecte rien il arrêt windows même quand je clique sur redémarrer ... c'est normale vu le code que j'utilise ...

    mais mon ordi a windows 7 et j'ai déjà perdu des donnés j'ai donc voulu créer une petite application mais elle n'a jamais fonctionné , voila pourquoi je suis ici ;-)

    mon application démarre avec windows et va dans les icone a côté de l'heure (NotifyIcon).

      Private Const WM_QUERYENDSESSION As System.Int32 = &H11
      Private Const WM_CANCELMODE As System.Int32 = &H1F
    
      'the sub to intercept the windows messages
      Protected Overrides Sub WndProc(ByRef ex As Message)
        If ex.Msg = WM_QUERYENDSESSION Then
          'cancel the message
          Dim MyMsg As New Message
          MyMsg.Msg = WM_CANCELMODE
          MyBase.WndProc(MyMsg)
          detection_disk.Start() 
    'timer qui analyse les disques amovibles toute les 1000 ms(1sec)avec plusieurs If et un Else qui a pour commande d'arrêter windows 
        Else
          'send the message as normal
          MyBase.WndProc(ex)
        End If
      End Sub
    

    c'est le code le plus important le reste c'est des fonctions qui sont appelé dans le timer "detection_disk" pour détecter les different type de disque .

    Merci pour vos réponses.

    samedi 15 janvier 2011 17:50
  • J'ai l'impression que c'est plutôt un problème avec ton PC. Donc tu dis que ton windows affiche bien un message "Cette application empêche Windows de s'arrêter" mais que Windows s'arrête tout de même ce qui ne semble pas très cohérent.

    De plus, je serais étonné que Windows n'arrête pas correctement les clés USB.

    N'y aurait il pas par exemple une clé HKEY_CURRENT_USER\Control Panel\Desktop\AutoEndTasks à 1 ? Je vois par exemple sur http://www.pctipsbox.com/windows-xp-shutdown-too-slow-fix-it-to-shutdown-instantly/ qu'il est possible de contrôler l'extinction (XP mais je pense que cela reste probablement vrai pour les successeurs) en l'imposant et en la rendant plus rapide (ce qui pourrait ressembler à ce qui se passe actuellement sur ton PC).

    Pour l'instant j'irais plutôt sur un forum Windows. J'ai l'impression que l'on essaie de résoudre par programmation qq chose qui est plutôt un problème de config...

    Si c'est bien le cas, cette solution ne pourrait de toute façon pas fonctionner, Windows étant configuré pour justement passer outre...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    samedi 15 janvier 2011 21:20
    Modérateur
  • Salut et merci de ton aide,

    Désolé de répondre si tard mais hier je t'ai répondu mais ça n'apparaît plus aujourd'hui ??

    Mes clé sont a mon avis normale ...

    HKEY_CURRENT_USER\Control Panel\Desktop\AutoEndTasks est bien à 1

    et

    HKEY_CURRENT_USER\Control Panel\Desktop\WaitToKillAppTimeout est à 2000

    donc mon windows a 2 problèmes :

    1) impossible d'interrompre l'arrêt de windows

    2)Windows n'arrête pas correctement mes clés USB

     

    Merci beaucoup pour votre aide. ;-)

    dimanche 16 janvier 2011 12:46
  • Non, chez moi je n'ai aucune de ces deux clés.

    D'après l'article que j'ai indiqué, cela veut dire que Windows va "tuer" les applications au bout de 2 secondes. Cela explique sans doute à la fois que l'arrêt ne puisse pas être empêché ainsi que sans doute le problème avec les clés USB.

    Supprime ces clés de registre et vois ce que cela donne. A l'arrêt Windows va alors fermer les clés USB et attendra la fin de cette fermeture (ou peut-être 12 à 20 secondes je crois par défaut ce qui devrait être suffisant) au lieu de tout interrompre au bout de 2 secondes.

    Du coup faire un programme qui empêche l'arrêt de Windows deviendra sans doute inutile (et ne marchait pas car Windows était configuré pour le "tuer" au bout de 2 secondes).


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Marqué comme réponse Benny03 dimanche 16 janvier 2011 21:10
    dimanche 16 janvier 2011 13:35
    Modérateur
  • Salut Patrice, problème résolut !! c'est super Merci beaucoup ;-)

    j'ai supprimer les 2 clés cliquer sur arrêter et mon ordi c'est arrêter .... mais je me suis dit que les modifications n'était pas d'application

    recommencé après avoir redémarre le pc et maintenant j'ai mon programme (avec le textbox et les 2 boutons) dans une liste avec des caractère Chinois comme description ?

    avec côté "Ce programme empêche windows de s'arrêter" ... c'est super !

    le problème maintenant c'est que  le code "ShutdownBlockReasonCreate(Me.Handle, TextBox1.Text)" fonctionne mais comme description (textbox1) j'ai des caractère chinois ...

     

    Merci.    

    dimanche 16 janvier 2011 14:29
  • A priori mettre un attribut <MarshalAs(UnmanagedType.LPWStr)> devant le paramètre concerné.

    Egalement, comme je disais, à mon avis écrire ce programme devient probablement inutile. Je soupçonne que le problème rencontré avec les clés USB était causé par ce même réglage, les opérations de fermeture n'ayant pas le temps de se terminer correctement à cause de ce réglage.


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    lundi 17 janvier 2011 11:55
    Modérateur
  • Salut, oui j'ai perdu mon temps et le votre pour essayer de faire fonctionner mon programme qui maintenant ne sert à rien ...

    c'est pas très malin ...

     

     

     

    Merci à tous pour votre aide qui à été précieuse .

    lundi 17 janvier 2011 22:01
  • Bonjour Benny03

    Pourquoi ?

    Dans tout les cas ça servira a d'autre.

     

    A bientot


    Cordialement, Troxsa
    mardi 18 janvier 2011 07:40
    Auteur de réponse
  • Je seconde TroXsA. Pas de souci, cela pourra éventuellement être utile à qq d'autre et de mon côté j'ignorais que l'on pouvait configurer la façon dont Windows s'arrête ou comment mettre un message explicite (d'une façon générale, j'ai appris pas mal de choses en répondant)...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    mardi 18 janvier 2011 12:47
    Modérateur
  • Salut,

    @TroXsA : Pourquoi ? : car l'aide fournie n'a plus rien avoir avec la programmation en Visual Basic mais plutot de l'aide sur la configuration windows ...

     

     

    Merci et peut-être a bientot ;-)

    mardi 18 janvier 2011 13:11