none
Système de licence RRS feed

  • Question

  • Bonsoir, comment faire en VB un système de licence sans que se soit quelque chose comme If textbox1.text = "ma licence" then ...

    Donc 1) comment faire pour que le logiciel vérifié si elle a le bon algorithme si celui-ci est "abcdklmetGVISW012345678" (si la textbox contient que des caractères définis dans cette chaîne  "abcdklmetGVISW012345678" et que la textbox comporte 33 caractères.

    Puis que sa vérifie dans une base de données MySQL.

    Lorsque la licence ne serait pas encore validée dans la BBD se serait comme sa : 

    Voila le résultat quand la licence serait validée : 

    la colonne licence contient toutes les clef de licence et la colonne valider passerait de 0 à 1 si la licence entrée serait valide.

    Merci beaucoup par avance.


    Theodore Morgado

    lundi 9 décembre 2013 19:04

Réponses

  • Bonjour,

    Sub Main() Dim codeAvalider = "....." If ValiderCode(codeAvalider) = False Then MsgBox("Code incorrect")
    Exit Sub End If Using connection As MySqlConnection = New MySqlConnection("< Chaîne de connexion >") Using command As MySqlCommand = New MySqlCommand() command.Connection = connection command.CommandText = "UPDATE MaTableLicences SET Valider = 1 WHERE code = @code" command.Parameters.AddWithValue("@code", codeAvalider) connection.Open() If command.ExecuteNonQuery() = 0 Then MsgBox("Code inexistant") Else MsgBox("Code OK !") End If End Using End Using End Sub Public Function ValiderCode(code As String) As Boolean Dim caractèresPossibles As String = "abcdklmetGVISW012345678" For Each caractère As Char In code If caractèresPossibles.Contains(caractère) = False Then Return False End If Next Return True End Function


    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Proposé comme réponse Aurel Bera jeudi 12 décembre 2013 13:39
    • Marqué comme réponse Aurel Bera mercredi 18 décembre 2013 09:40
    lundi 9 décembre 2013 23:35
    Modérateur
  • Bonjour,

    Vous stockez vos codes dans un tableau et vous faites alors une boucle :

            Dim tousLesCodesAvalider As String() = {".....", "......", "......"}
    
            For Each codeAvalider In tousLesCodesAvalider
                If ValiderCode(codeAvalider) = False Then
                    MsgBox("Code incorrect")
                    Exit Sub
                End If
    
                Using connection As MySqlConnection = New MySqlConnection("< Chaîne de connexion >")
                    Using command As MySqlCommand = New MySqlCommand()
                        command.Connection = connection
                        command.CommandText = "UPDATE MaTableLicences SET Valider = 1 WHERE code = @code"
                        command.Parameters.AddWithValue("@code", codeAvalider)
    
                        connection.Open()
    
                        If command.ExecuteNonQuery() = 0 Then
                            MsgBox("Code inexistant")
                        Else
                            MsgBox("Code OK !")
                        End If
    
                    End Using
                End Using
            Next

    Oui la méthode Main() est un module.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Marqué comme réponse Aurel Bera mercredi 18 décembre 2013 09:40
    lundi 16 décembre 2013 01:26
    Modérateur

Toutes les réponses

  • Bonjour,

    Sub Main() Dim codeAvalider = "....." If ValiderCode(codeAvalider) = False Then MsgBox("Code incorrect")
    Exit Sub End If Using connection As MySqlConnection = New MySqlConnection("< Chaîne de connexion >") Using command As MySqlCommand = New MySqlCommand() command.Connection = connection command.CommandText = "UPDATE MaTableLicences SET Valider = 1 WHERE code = @code" command.Parameters.AddWithValue("@code", codeAvalider) connection.Open() If command.ExecuteNonQuery() = 0 Then MsgBox("Code inexistant") Else MsgBox("Code OK !") End If End Using End Using End Sub Public Function ValiderCode(code As String) As Boolean Dim caractèresPossibles As String = "abcdklmetGVISW012345678" For Each caractère As Char In code If caractèresPossibles.Contains(caractère) = False Then Return False End If Next Return True End Function


    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Proposé comme réponse Aurel Bera jeudi 12 décembre 2013 13:39
    • Marqué comme réponse Aurel Bera mercredi 18 décembre 2013 09:40
    lundi 9 décembre 2013 23:35
    Modérateur
  • Bonjour,

    le code 

       Dim codeAvalider = "....."


    je dois remplacer les points par la clef de licence?

    Et pour 

      Using connection As MySqlConnection = New MySqlConnection("< Chaîne de connexion >")

    je met 

      Using connection As MySqlConnection = New MySqlConnection("ip du serveur, utilisateur, mot de passe")

    ?


    Theodore Morgado

    mardi 10 décembre 2013 11:43
  • Bonjour,

    Oui, remplacez les points par le code à valider.

    Pour la chaîne de connexion vous pouvez vous inspirer du site : http://www.connectionstrings.com/mysql/

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    mercredi 11 décembre 2013 00:49
    Modérateur
  • Bonjour,

    Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    vendredi 13 décembre 2013 13:43
  • Bonjour, mais pour qu'il y ait plusieurs codes possibles à valider, sans faire une infinité de conditions, je fais comment ?

    Et le code sub main c'est un module ?

    Bonne journée


    Theodore Morgado

    dimanche 15 décembre 2013 10:12
  • Bonjour,

    Vous stockez vos codes dans un tableau et vous faites alors une boucle :

            Dim tousLesCodesAvalider As String() = {".....", "......", "......"}
    
            For Each codeAvalider In tousLesCodesAvalider
                If ValiderCode(codeAvalider) = False Then
                    MsgBox("Code incorrect")
                    Exit Sub
                End If
    
                Using connection As MySqlConnection = New MySqlConnection("< Chaîne de connexion >")
                    Using command As MySqlCommand = New MySqlCommand()
                        command.Connection = connection
                        command.CommandText = "UPDATE MaTableLicences SET Valider = 1 WHERE code = @code"
                        command.Parameters.AddWithValue("@code", codeAvalider)
    
                        connection.Open()
    
                        If command.ExecuteNonQuery() = 0 Then
                            MsgBox("Code inexistant")
                        Else
                            MsgBox("Code OK !")
                        End If
    
                    End Using
                End Using
            Next

    Oui la méthode Main() est un module.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Marqué comme réponse Aurel Bera mercredi 18 décembre 2013 09:40
    lundi 16 décembre 2013 01:26
    Modérateur