Automatiser la saisie de clées cd en récuperant le nom du process

Soyez le premier à donner votre avis sur cette source.

Vue 5 345 fois - Téléchargée 375 fois

Description

petit code qui une fois ouvert vérifie tout les processus,
puis qui verifie si un des processus nécéssite une clée cd si oui ( a vous de les configurer avec vos clée cd)
qui tape la clée et pour ma configuration appuis sur entrer.

Source / Exemple :


Imports System.Diagnostics.Process
Imports System.Text
Public Class Form1

    '' Application
    '' sims3
    Sub sims3ambitions()
        AppActivate("Les Sims™ 3 Ambitions")
        My.Computer.Keyboard.SendKeys("XXXXXXXXXXXXX" & "{ENTER}")
    End Sub
    Sub sims3()
        AppActivate("Les Sims™ 3")
        My.Computer.Keyboard.SendKeys("XXXXXXXXXXXXX" & "{ENTER}")
    End Sub
    Sub sims3vip()
        AppActivate("Les Sims™ 3 Accès VIP")
        My.Computer.Keyboard.SendKeys("XXXXXXXXXXXXX" & "{ENTER}")
    End Sub
    ''CNC 3
    Sub cnc3tw()
        My.Computer.Keyboard.SendKeys("XXXXXXXXXXXXX" & "{ENTER}")
    End Sub
    Sub cnc3kw()
        My.Computer.Keyboard.SendKeys("XXXXXXXXXXXXX" & "{ENTER}")
    End Sub
    ''Crysis
    Sub crysis()
        My.Computer.Keyboard.SendKeys("XXXXXXXXXXXXX" & "{ENTER}")
    End Sub

    '' Création de la liste des processuc
    Sub CreerListeProcess()

        '' définition des variables
        Dim ProcessList As System.Diagnostics.Process()
        Dim Proc As System.Diagnostics.Process

        '' Récuperation des processus
        ProcessList = System.Diagnostics.Process.GetProcesses()

        '' lister les processus dans une richtextbox & ajouter une ligne apres chaque processus
        For Each Proc In ProcessList
            RichTextBox1.AppendText(Proc.ProcessName & vbNewLine)
        Next

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.NotifyIcon1.Icon = Me.Icon
        With NotifyIcon1
            .BalloonTipIcon = ToolTipIcon.Info
            .BalloonTipTitle = "MegaGenKay Notify"
            .BalloonTipText = "MegaGenKay est bien lancer"

        End With
        Me.NotifyIcon1.ShowBalloonTip(0)
        Timer2.Start()
        '' lancement du timer . vous pouvez changer ici l'interval entre chaque recherchede processus
        Timer1.Interval = 1000 '' pour ma part 1 seconde entre chaque recherche
        Timer1.Start()

    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Timer1.Stop() '' on arrete le timer afin d'eviter les double touches
        RichTextBox1.Text = "" '' on remet la liste a zero afin d'eviter d'avoir 100 fois le process qui apparait
        CreerListeProcess() '' <-- il suffit de lire lol . on appel la création de la liste
        For Each a In RichTextBox1.Lines '' boucle qui lit la richtextbox ligne par ligne
            If a = "The Sims 3 Ambitions_code" Then '' recherche du processus
                sims3ambitions() '' lancement de la chose a faire pour ma part j'est automatiser l'ecriture du serial du jeu les sims 3
            ElseIf a = "The Sims 3_code" Then '' je pense que vous connaissez deja le else if :)
                sims3()
            ElseIf a = "The Sims 3 Late Night_code" Then
                sims3vip()
            ElseIf a = "Command and Conquer 3_code" Then
                cnc3tw()
            ElseIf a = "Command and Conquer 3 Kanes Wrath_code" Then
                cnc3kw()
            ElseIf a = "Crysis_code" Then
                crysis()
            End If
        Next
        Timer1.Start() '' on relance le timer afin d'actualiser la liste des process

    End Sub

    Private Sub AfficherToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AfficherToolStripMenuItem.Click
        Me.Show()
    End Sub

    Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QuitterToolStripMenuItem.Click
        Application.Exit()
    End Sub

    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        Me.Hide()
        Timer2.Stop()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Hide()
    End Sub
End Class

Conclusion :


petit code source bien pratique qui montre comment recuperer un processus externe et travailler dessus

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
11
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
2 juillet 2011

salut merci pour ton commentaire cependant étant autodidacte j'est un peu de mal a differencier les .net et les espace de noms visualbasic
en fait pour etre franc j'est jamais lu un seul cours j'est fait avec la recherche automatiser de visual basic express .

par contre je ne voit pas du tout comment crée se dictionnaire dont tu me parle mais sa me plairais bien d'apprendre je suis la pour sa

pour ton evolution futur j'avoue y avoir penser le fichier config est tres pratique .

pour ta question : "- Pourquoi ne par faire retournée par CreerListeProcess() un tableau de chaines (représentant chaque lignes de ton RTB actuel), cela éviterait d'éventuels problèmes si modification du contenu du RTB durant l'exécution."
le richtextbox1 est visible = false

en fait l'application se lance directement dans la zone de notification (je vient juste de le modifier)

je v mettre a jour le code j'espere pouvoir relire un de tes commentaires qui ma donner pas mal d'idée ;)

merci encore .

Cracken
Messages postés
14672
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2020
143
Bonsoir,

Donc, comme tu es débutant, je vais te donner quelques conseils et pistes d'évolutions pour ton programme.

On commence par les points étrange du programme :
- AppActivate("Les Sims™ 3 Ambitions")
Où est déclaré AppActivate ?
Si c'est une fonction de l'espace de nom Microsoft.VisualBasic, recherches plutot un équivalent plus .NET, ça rendre l'ensemble plus lisible.

- Evite les noms par défaut pour les controles qyue tu utilises dans ton code, car ils sont en général peu parlant, préfère par exemple :
RTBListProcess à la place de RichTextBox1
RTB RichTextBox, puis une description rapide de à quoi ça sert.

Pareil, TxtPassword (TextBox), CmdOk (Button), ChkActivate (Checkbox), ...

- Pourquoi ne pas utiliser Timer1.Enabled à la place de faire un Start à chaque fois ?
- Pour éviter la réentrance dans ton Timer, tu peux utiliser un variable d'objet ou licale statique pour mémoriser l'état de ton Timer.

(Variable d'objet, une variable déclaré au niveau d'une classe/structure, ici, c'est Form1)
(Variable locale statique, variable locale déclarée avec le mot clé Static)

Amélioration du code possible :
- Pourquoi ne par faire retournée par CreerListeProcess() un tableau de chaines (représentant chaque lignes de ton RTB actuel), cela éviterait d'éventuels problèmes si modification du contenu du RTB durant l'exécution.
- Tes fonctions :
# Sub sims3ambitions()
# AppActivate("Les Sims™ 3 Ambitions") '' on active le process sur lequel on veut travailler
# My.Computer.Keyboard.SendKeys("XXXXXXXXXXXXXXXXXXX" & "{ENTER}") '' Attention aux sendkeys sur vista nécéssite le mode administrateur
# End Sub
#
# Sub sims3()
# AppActivate("Les Sims™ 3")
# My.Computer.Keyboard.SendKeys("XXXXXXXXXXXXXXXXXXX" & "{ENTER}")
# End Sub

Peuvent être remplacée par un Dictionnaire : Dictionary(Of String, String)
Comme ça, tu peux faire dans la boucle de ton Timer :

For Each a In RichTextBox1.Lines ' boucle qui lit la richtextbox ligne par ligne
If MonDictionnaire.ContainsKey(a) Then ' recherche du processus
AppActivate(a) ' on active le process sur lequel on veut travailler
My.Computer.Keyboard.SendKeys(MonDictionnaire(a) & "{ENTER}") '' Attention aux sendkeys sur vista nécéssite le mode administrateur
End If
Next

Ta clé, c'est le nom de la fenêtre et la valeur, la clé à entrer (si la valeur est complexe (plusieurs sous-valeurs), tu peux faire une classe qui contiendra le tout).

ça sera plus souple lors de l'ajout de nouvelles appli.

Evolution future :
Utiliser un fichier de config à la place que ce soit figé dans le code.

Voilà, je pense qu'avec ce petit message, tu as quelques voies de découvertes de VB :)
Bon codage.
Messages postés
11
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
2 juillet 2011

ne soyez pas trop méchant avec mon code sa ne fait que 7 jours que j'apprend
mais si vous pouvez me conseillez pour les prochains .
tous conseils sera mis en pratique .

Merci d'avance Cracken ;)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.