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 :

Fichier hosts en cours d'utilisation


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut Fichier hosts en cours d'utilisation
    Bonjour,
    je voudrais ajouter des sites à bloquer au fichier hosts (un très grand nombre de site, plus de 85 000 minimum).
    Je suis donc obligé de désactiver le service "Dnscache" car la navigation devient impossible aussi non.
    Le problème n'est pas là, en effet lors de l'ajout de toutes ces lignes, j'ai un message d'erreur comme quoi le fichier hosts est en cours d'utilisation. C'est bien une erreur de mon code mais je ne vois pas d'où cela peut venir. J'espère que quelqu'un verra le problème qui est présent dans mon code.
    Merci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ButtonPatcherHosts_Click(sender As Object, e As EventArgs) Handles ButtonPatcherHosts.Click, ButtonPatcherHosts.Click
            Dim ThreadPatcherHosts As New Threading.Thread(AddressOf PatcherHosts)
            ThreadPatcherHosts.Start()
        End Sub
    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
    If CheckBoxBloquerSitesDangereux.Checked Then
                Try
                    Dim StreamReaderHosts As New StreamReader("C:\Windows\System32\Drivers\etc\hosts")
                    Dim StreamReaderListe As New StreamReader("C:\Users\Clément\Documents\ListeDeSiteContenusDangereux.txt")
                    Dim ligne As String
                    Dim ligneExistante As String = StreamReaderHosts.ReadToEnd
                    StreamReaderHosts.Close()
                    Dim sw As StreamWriter = New StreamWriter("C:\Windows\System32\Drivers\etc\hosts", True)
                    Do
                        ligne = StreamReaderListe.ReadLine
                        'on verifie si ligne n'est pas vide 
                        If ligne = String.Empty Then
                            sw.Close()
                            Exit Do
                        End If
                        If Not ligneExistante.Contains(ligne) Then
                            sw.WriteLine(ligne)
                        End If
                    Loop Until ligne Is Nothing
                    StreamReaderListe.Close()
                Catch ex As Exception
                    MessageBox.Show(ex.ToString)
                End Try
            End If
     
            If CheckBoxBloquerSitesPublicitaires.Checked Then
                Try
                    Dim StreamReaderHosts As New StreamReader("C:\Windows\System32\Drivers\etc\hosts")
                    Dim StreamReaderListe As New StreamReader("C:\Users\Clément\Documents\ListeDeSiteContenusPublicitaires.txt")
                    Dim ligne As String
                    Dim ligneExistante As String = StreamReaderHosts.ReadToEnd
                    StreamReaderHosts.Close()
                    Dim sw As StreamWriter = New StreamWriter("C:\Windows\System32\Drivers\etc\hosts", True)
                    Do
                        ligne = StreamReaderListe.ReadLine
                        'on verifie si ligne n'est pas vide 
                        If ligne = String.Empty Then
                            sw.Close()
                            Exit Do
                        End If
                        If Not ligneExistante.Contains(ligne) Then
                            sw.WriteLine(ligne)
                        End If
                    Loop Until ligne Is Nothing
                    StreamReaderListe.Close()
                Catch ex As Exception
                    MessageBox.Show(ex.ToString)
                End Try
            End If
     
            If CheckBoxBloquerSitesCaracteresSexuels.Checked Then
                Try
                    Dim StreamReaderHosts As New StreamReader("C:\Windows\System32\Drivers\etc\hosts")
                    Dim StreamReaderListe As New StreamReader("C:\Users\Clément\Documents\ListeDeSiteCaracteresSexuels.txt")
                    Dim ligne As String
                    Dim ligneExistante As String = StreamReaderHosts.ReadToEnd
                    StreamReaderHosts.Close()
                    Dim sw As StreamWriter = New StreamWriter("C:\Windows\System32\Drivers\etc\hosts", True)
                    Do
                        ligne = StreamReaderListe.ReadLine
                        'on verifie si ligne n'est pas vide 
                        If ligne = String.Empty Then
                            sw.Close()
                            Exit Do
                        End If
                        If Not ligneExistante.Contains(ligne) Then
                            sw.WriteLine(ligne)
                        End If
                    Loop Until ligne Is Nothing
                    StreamReaderListe.Close()
                Catch ex As Exception
                    MessageBox.Show(ex.ToString)
                End Try
            End If
     
        End Sub

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Bonjour,

    Tu devrais utiliser plutôt System.IO.File.ReadAllLines() et System.IO.File.AppendAllLines()

    Je regarde et je te dirais

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Ton message d'erreur ne concerne pas un fichier déjà ouvert, mais une interdiction d'écrire dans ce fichier sans droits d'administrateur.

    Si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim LignesLues() As String = System.IO.File.ReadAllLines("C:\Users\" & System.Environment.UserName & "\Documents\ListeDeSiteContenusDangereux.txt")
    System.IO.File.AppendAllLines("C:\users\" & System.Environment.UserName & "\desktop\hosts", LignesLues)
    Ca fonctionne parfaitement, si tu essayes d'écrire dans un fichier dans c:\windows\system32\drivers\etc\ tu ne peux pas le faire sans les droits.

    Regarde cette page:
    http://dotnet.developpez.com/tutorie...e-utilisateur/

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Re:

    Je viens de tester cette solution:
    http://social.msdn.microsoft.com/For...blme-de-droit-

    Et ça fonctionne bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim LignesLues() As String = System.IO.File.ReadAllLines("C:\Users\" & System.Environment.UserName & "\Documents\ListeDeSiteContenusDangereux.txt")
            System.IO.File.AppendAllLines("C:\Windows\System32\Drivers\etc\hosts_old", LignesLues)
        End Sub

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Salut ACIVE_CS,
    déjà merci pour la simplification du code !
    J'avais déjà modifié la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
    afin d'avoir les droits. Cependant, j'ai toujours la même erreur. J'ai oublié de préciser un détail très important, c'est que malgré le message d'erreur, les lignes s'ajoutent quand même.
    Je précise que je suis sous Windows 8, et je pense qu'en mettant la valeur "EnableLUA" à "0" cela fonctionnerait, mais je ne veux pas car les personnes qui utiliseront mon programme n'ont pas à faire de tels manipulations, de plus on ne peut plus ouvrir les applications provenant du Windows Store après.

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Salut Clement,

    Tu n'aurais pas oublié le bloc notes avec le fichier ouvert par hasard?
    Je dis n'importe quoi ça fonctionne même comme ça, ... je viens d'essayer.

    As-tu testé juste avec le deux lignes de code que je t'ai envoyé ci-dessus?
    Chez moi ça fonctionne sans problème je suis sous Win7 mais je ne pense pas qu'il y a un rapport.

    ahh.. n'oublie pas de remplacer hosts_old par hosts

    Sinon mis à part ça il y aurait forcément un autre programme qui l'utilise, tel que iTunes ou quelque chose du genre.

    Fait le test et tiens nous au courant

  7. #7
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Non Carl je n'ai pas oublié de fermer Bloc-Notes
    J'ai bien sur remplacé mon code par tes deux lignes qui est beaucoup plus simple.
    Cependant, j'ai aussi testé sur ma machine virtuelle qui tourne sous Windows 7, et j'ai exactement le même problème. Les lignes s'ajoutent, mais j'ai encore le message.
    En revanche, le fait que toi ça marche, ne viendrait pas du fait que tu utilises le fichier hosts_old au lieu de hosts ?
    J'ai aussi vérifié si le fichier hosts est utilisé par une application grâce au logiciel Unlocker mais apparemment non.

  8. #8
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Oui... j'ai eu ce doute également et j'ai rectifié, j'ai même supprimé les doublons en écriture dans le fichier (comme tu voulais faire) et... ça fonctionne aussi !!!


    Le code:
    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 Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Lignes_a_inserer() As String = System.IO.File.ReadAllLines("C:\Users\" & System.Environment.UserName & "\Documents\ListeDeSiteContenusDangereux.txt")
            Dim Lignes_Existantes() As String = System.IO.File.ReadAllLines("C:\Windows\System32\Drivers\etc\hosts")
            Dim Liste As New ListBox
            Dim Found As Boolean
     
            For Each Ligne_Inser As String In Lignes_a_inserer
                Found = False
                For Each Ligne_Exist As String In Lignes_Existantes
                    If Ligne_Exist.Contains(Ligne_Inser) Then Found = True
                Next
                If Found = False Then Liste.Items.Add(Ligne_Inser)
            Next
            System.IO.File.AppendAllLines("C:\Windows\System32\Drivers\etc\hosts", Liste.Items.Cast(Of String))
            MessageBox.Show("OK")
        End Sub

  9. #9
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Je m'en souviens qu'à l'époque du VB6 tu ouvrais le fichier (en écriture ou lecture) et si tu avais un plantage avant de le fermer windows considérait qu'il était toujours ouvert par visual studio.

    La solution était de fermer et redémarrer visual studio ou de faire un close au début de l'application.

    Ferme tout (visual studio complètement) essaye mon dernier code sur un nouveau projet, (pour enlever le doute) il n'y a pas de raison...

  10. #10
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Je viens de voir ton tout premier message...
    J'ai pas fait gaffe que tu démarres plusieurs threads...

    C'est forcément la notre prob...
    Il y a forcément conflit puisque chacun utilise les mêmes fichiers.

    Essaye de les enlever ça ne devrait pas être trop long même 200 000 lignes ça devrait aller (ceci-dit j'ai pas testé)

  11. #11
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    J'ai laissé que un if et toujours le même problème. (De toute façon je cochais que une case à chaque fois)
    J'ai peut être deux pistes pour savoir d'où vient le problème, la première est l'état du service "Dnscache" que je suis obligé d'arrêter sinon la connexion est impossible en fonction du nombre de sites bloqués. Mais c'est bizarre car sur ma machine virtuelle avec Windows 7 je n'y avait pas touché. (Après avoir utilisé le logiciel et bidouillé le service, il m'est impossible de le changer d'état sur Windows 8)

    Le deuxième problème serait comme tu l'a dit la mauvaise fermeture du hosts car je ne peux même plus le modifier manuellement après avoir utilisé mon logiciel et encore une fois le service bidouillé et je suis obligé de démarrer ne sans échec pour le modifier (Dnscache ne marche pas en sans échec me semble t-il ), arggg j'ai l'impression que les deux sont liés, c'est un vrai casse tête cette histoire !

  12. #12
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Oui alors,
    ça marche chez moi mais j'en ajoute que 3 lignes, et puis on ne sait pas si ton IE y fait des accès aussi.
    J'y pense, pour bloquer un grand nombre de sites de cette façon ce ne serait pas mieux de le faire sur ta box, routeur ou encore l'antivirus?

  13. #13
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    C'est vrai que ta solution peut être intéressante mais le truc c'est que c'est pour faire un petit contrôle parental donc c'est pas possible. De toute façon les autres contrôles parentaux c'est comme cela qu'ils procèdent non ?

  14. #14
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Petit élément nouveau, j'ai remarqué que si je démarre mon PC avec les lignes au fichier hosts ajouté, ainsi que le service Dnscache démarré, je ne peux plus modifier le hosts même manuellement car occupé.
    Edit : Encore un nouvel élément :p J'ai désactivé le démarrage du service Dnscache (comme je l'avais déjà fais une fois), redémarré mon PC et réessayé mon logiciel, et ça fonctionne !!!!!!!
    Je poursuis mes tests dans la soirée sur plusieurs PC viendrais conclure le sujet ou redemander de l'aide :p

  15. #15
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Bonjour,

    Regarde un peu ce lien:
    http://realitygaming.fr/threads/vb-n...-darkz.120621/

    (je crois qu'il faut s'inscrire pour télécharger le zip).

  16. #16
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Oui je me suis inscris, j'ai décompilé le programme et lui en fait il fait un streamwriter mais sur le bureau.
    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
    Private Sub Generer_Click(ByVal sender As Object, ByVal e As EventArgs)
        If ((Me.TextBox1.Text = "URL du 1er site à bloqué") Or (Me.TextBox1.Text = "")) Then
            Me.TextBox1.Text = ""
            If ((Me.TextBox2.Text = "URL du 2ème site à bloqué") Or (Me.TextBox2.Text = "")) Then
                Me.TextBox2.Text = ""
                If ((Me.TextBox3.Text = "URL du 3ème site à bloqué") Or (Me.TextBox3.Text = "")) Then
                    Me.TextBox3.Text = ""
                    If ((Me.TextBox4.Text = "URL du 4ème site à bloqué") Or (Me.TextBox4.Text = "")) Then
                        Me.TextBox4.Text = ""
                        If ((Me.TextBox5.Text = "URL du 5ème site à bloqué") Or (Me.TextBox5.Text = "")) Then
                            Me.TextBox5.Text = ""
                            If ((Me.TextBox6.Text = "URL du 6ème site à bloqué") Or (Me.TextBox6.Text = "")) Then
                                Me.TextBox6.Text = ""
                                If ((Me.TextBox7.Text = "URL du 7ème site à bloqué") Or (Me.TextBox7.Text = "")) Then
                                    Me.TextBox7.Text = ""
                                    If ((Me.TextBox8.Text = "URL du 8ème site à bloqué") Or (Me.TextBox8.Text = "")) Then
                                        Me.TextBox8.Text = ""
                                        If ((Me.TextBox9.Text = "URL du 9ème site à bloqué") Or (Me.TextBox9.Text = "")) Then
                                            Me.TextBox9.Text = ""
                                            If ((Me.TextBox10.Text = "URL du 10ème site à bloqué") Or (Me.TextBox10.Text = "")) Then
                                                Me.TextBox10.Text = ""
                                                If ((Me.TextBox11.Text = "URL du 11ème site à bloqué") Or (Me.TextBox11.Text = "")) Then
                                                    Me.TextBox11.Text = ""
                                                    If ((Me.TextBox12.Text = "URL du 12ème site à bloqué") Or (Me.TextBox12.Text = "")) Then
                                                        Me.TextBox12.Text = ""
                                                        If ((Me.TextBox13.Text = "URL du 13ème site à bloqué") Or (Me.TextBox13.Text = "")) Then
                                                            Me.TextBox13.Text = ""
                                                        End If
                                                    End If
                                                End If
                                            End If
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        End If
        Dim writer As New StreamWriter((Environment.GetFolderPath(SpecialFolder.Desktop) & "\hosts"))
        writer.WriteLine("# Copyright (c) 1993-2009 Microsoft Corp.")
        writer.WriteLine("#")
        writer.WriteLine("# Ceci est un exemple de fichier HOSTS utilisé par Microsoft TCP/IP pour Windows.")
        writer.WriteLine("#")
        writer.WriteLine("# Ce fichier contient les correspondances des adresses IP au noms d'hôtes.")
        writer.WriteLine("# Chaque entrée doit être sur une ligne propre. L'adresse IP doit être placée")
        writer.WriteLine("# dans la première colonne, suivie par le nom d'hôte correspondant. L'adresse")
        writer.WriteLine("#  IP et le nom d'hôte doivent être séparés par au moins un espace.")
        writer.WriteLine("#")
        writer.WriteLine("# Additionally, comments (such as these) may be inserted on individual")
        writer.WriteLine("# lines or following the machine name denoted by a '#' symbol.")
        writer.WriteLine("#")
        writer.WriteLine("# For example:")
        writer.WriteLine("#")
        writer.WriteLine("#      102.54.94.97     rhino.acme.com          # source server")
        writer.WriteLine("#       38.25.63.10     x.acme.com              # x client host")
        writer.WriteLine("#")
        writer.WriteLine("# localhost name resolution is handled within DNS itself.")
        writer.WriteLine("#" & ChrW(9) & "127.0.0.1       localhost")
        writer.WriteLine("#" & ChrW(9) & "::1             localhost")
        writer.WriteLine("")
        writer.WriteLine(("127.0.0.1     " & Me.TextBox1.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox2.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox3.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox4.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox5.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox6.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox7.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox8.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox9.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox10.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox11.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox12.Text))
        writer.WriteLine(("127.0.0.1     " & Me.TextBox13.Text))
        writer.Close
        Interaction.MsgBox("Fichier Hosts générer avec succès sur vôtre bureau." & ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "Pour remplacer le fichier Hosts, vous devez renommé le fichier généré en ""hosts"" et aller dans :" & ChrW(13) & ChrW(10) & "C:\Windows\System32\drivers\etc\" & ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "Puis remplacer le fichier hosts par celui généré.", MsgBoxStyle.ApplicationModal, Nothing)
    End Sub

  17. #17
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Sais-tu qu'il existe des logiciels qui permettent de faire cela ? Par exemple Forefront ou encore ce genre de solutions réseau : Chronos.

    Avantages par rapport à ta solution du fichier hosts:
    - Gestion centralisée, pour tous les utilisateurs, donc pas besoin d'exécuter de programme sur le parc informatique.
    - Il est facile d'aller modifier le fichier hosts, là il faudra avoir les habilitations nécessaires pour se connecter au serveur, puis ouvrir le logiciel, faire la modif et activer la mise à jour (pas à la portée de tout le monde).

    Après bien sûr, tout dépend de ton scénario d'utilisation ! Si tu veux juste faire ça pour contrôler ton réseau local chez toi, effectivement pas la peine de déployer un tel logiciel Par contre si tu es en entreprise, c'est différent.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  18. #18
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Salut DotNetMatt,
    je ne suis pas du tout en entreprise, je ne suis même pas programmeur, je suis lycéen ^^ En fait je veux créer ce programme et le proposer sur internet et essayer de proposer un meilleur logiciel que les autres contrôles parentaux

    @ACIVE_CS
    ça a marché sur ma VM Windows 7

  19. #19
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par CLeBeR Voir le message
    Salut DotNetMatt,
    je ne suis pas du tout en entreprise, je ne suis même pas programmeur, je suis lycéen ^^ En fait je veux créer ce programme et le proposer sur internet et essayer de proposer un meilleur logiciel que les autres contrôles parentaux
    Ok donc effectivement les logiciels que j'ai mentionné ne te seraient pas d'un grand secours Cependant comme je te l'ai dit, passer par le fichier hosts ne te met pas forcément à l'abris que l'enfant d'un de tes utilisateurs sache le faire et qu'il le fasse, à l'insu de ses parents

    Tu pourrais créer un proxy installé en local, par lequel toutes les requêtes HTTP passeraient. En appliquant un genre de GPO sur l'ordinateur, tu pourrais bloquer les modifications des options Internet, ce qui rendrait impossible d'enlever la configuration du proxy dans les options internet. Pour t'inspirer, tu peux regarder comment fonctionne Fiddler. Voilà juste quelques idées d'amélioration
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  20. #20
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Bonjour,
    j'ai réussi à résoudre mon problème, il faut absolument que le service "Dnscache" soit arrêté et désactivé car c'est lui qui lit le fichier hosts. Il ralentit donc la connexion si il est activé, de plus le fichier hosts sera inaccessible.
    Je vous donne donc le code pour l'arrêter et le désactiver si ça intéresse quelqu'un.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            Try
                Dim Service As New ServiceController()
                Service.MachineName = "."
                Service.ServiceName = "Dnscache"
                Service.Stop()
                Dim Nkey As RegistryKey = Registry.LocalMachine
                Dim valKey As RegistryKey = Nkey.OpenSubKey("System\ControlSet001\Services\Dnscache", RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.RegistryRights.FullControl)
                valKey.SetValue("Start", Convert.ToInt32(4), RegistryValueKind.DWord)
                valKey.Close()
            Catch ex As Exception
            End Try
    Merci de l'aide que vous m'avez apporté !

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

Discussions similaires

  1. lire fichier texte en cours d'utilisation possible?
    Par philippe123 dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/06/2008, 14h18
  2. [SQL] Tester si un fichier est en cours d'utilisation
    Par obordelow dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/04/2007, 14h07
  3. Réponses: 14
    Dernier message: 07/07/2006, 16h27
  4. Réponses: 1
    Dernier message: 31/03/2006, 11h24
  5. Comment lire un fichier DB en cours d'utilisation par 1 autr
    Par jbat dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/03/2004, 11h06

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