Re-bonjour ! Je suis passer par ici il y'a quelques jours pour un soucis d'ouverture de fenêtre en c# ( cc ericlm128 )

Pour résumer je fais un petit soft qui détecte un logiciel en particulier et me permet de naviguer avec une seule touche de mon clavier entre les différentes fenêtres de celui-ci ( un jeux, très pratique donc pour faire du multicompte )

Après avoir eu de nombreux soucis qui m'ont obliger à changer plusieurs fois le code. Le programme est fonctionnel à 99% !

Bien sur le petit % qui manque gâche tout !

Je vous explique le fonctionnement actuel :

Je lance mon soft, j'ouvre jusqu'à 8 fois le jeux.
Je lance une détection du jeux par process.name, je récupère la liste des ID dans une listBox.
Ensuite je sélectionne une ID et je l'attribue à un label via un bouton assigner ( une photo parle mieux que des mots )
Nom : 255555555555555555555555555555555e.png
Affichages : 289
Taille : 4,7 Ko

Les label " ID " correspondent au bouton " Assigner " juste à côté.
Le bouton Test me permet de montrer la fenêtre associé à l'ID ( avant de l'assigner ) ainsi je peux mettre mes fenêtres dans l'ordre.

Une fois que toutes les fenêtres ont été assignées j'appuie sur la touche pour me permettre de lancer la détection de touche et donc de switcher de fenêtres.

Mon problème intervient ici !

Lorsque j'appuie sur ma touche pour switcher de fenêtre je peux changer 8 fois de fenêtres puis une fois retourner à la 1er fenêtre sa bugue et les fenêtres ne s'ouvrent plus ( elles clignotent en orange dans ma barres des tâches )

Selon le précèdent post que j'avais fais obtenu de la part de ericlm128 ce 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
18
19
20
21
22
23
24
25
private enum ShowWindowEnum
        {
            Hide = 0, ShowNormal = 1, ShowMinimized = 2, ShowMaximized = 3, Maximize = 3, ShowNormalNoActivate = 4, Show = 5, Minimize = 6, ShowMinNoActivate = 7, ShowNoActivate = 8, Restore = 9, ShowDefault = 10, ForceMinimized = 11
        };
 
        [DllImport("user32.dll")]
        static extern bool ShowWindow(IntPtr hWnd, ShowWindowEnum nCmdShow);
 
        [DllImport("user32.dll")]
        private static extern int SetForegroundWindow(IntPtr hwnd);
 
        static void Main(string[] args)
        {
            try
            {
                int id = 2064;
                Process p = Process.GetProcessById(id);
                ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                SetForegroundWindow(p.MainWindowHandle);
            }
            catch
            {
            }
 
        }
Pouvez vous m'aidez une fois de plus à corriger se problème ? Voici le code dans ma textbox qui me permet de détecter quand j'appuie sur la touche et donc de demander le changement.

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
private void Touche_TextChanged(object sender, EventArgs e)
        {
            if (Touche.Text == "Insert")
            {
                if (progressBar1.Value == 0 & Assigner2.Enabled == true)
                {
                    int id = Convert.ToInt32(ID1.Text.ToString());
                    Process p = (Process.GetProcessById(id));
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 1;
                    MessageBox.Show("Info","La détection à démarrer !", MessageBoxButtons.OK,MessageBoxIcon.Information);
                }
                else if (progressBar1.Value == 1 & Assigner2.Enabled == true)
                {
                    int id = Convert.ToInt32(ID2.Text.ToString());
                    Process p =  (Process.GetProcessById(id));
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 2;
                }
                else if (progressBar1.Value == 2 & Assigner3.Enabled == true)
                {
                    int id = Convert.ToInt32(ID3.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 3;
                }
                else if (progressBar1.Value == 2 & Assigner3.Enabled == false)
                {
                    int id = Convert.ToInt32(ID1.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 1;
                }
                else if (progressBar1.Value == 3 & Assigner4.Enabled == true)
                {
                    int id = Convert.ToInt32(ID4.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 4;
                }
                else if (progressBar1.Value == 3 & Assigner4.Enabled == false)
                {
                    int id = Convert.ToInt32(ID1.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 1;
                }
                else if (progressBar1.Value == 4 & Assigner5.Enabled == true)
                {
                    int id = Convert.ToInt32(ID5.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 5;
                }
                else if (progressBar1.Value == 4 & Assigner5.Enabled == false)
                {
                    int id = Convert.ToInt32(ID1.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 1;
                }
                else if (progressBar1.Value == 5 & Assigner6.Enabled == true)
                {
                    int id = Convert.ToInt32(ID6.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 6;
                }
                else if (progressBar1.Value == 5 & Assigner6.Enabled == false)
                {
                    int id = Convert.ToInt32(ID1.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 1;
                }
                else if (progressBar1.Value == 6 & Assigner7.Enabled == true)
                {
                    int id = Convert.ToInt32(ID7.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 7;
                }
                else if (progressBar1.Value == 6 & Assigner7.Enabled == false)
                {
                    int id = Convert.ToInt32(ID1.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";;
                    progressBar1.Value = 1;
                }
                else if (progressBar1.Value == 7 & Assigner8.Enabled == true)
                {
                    int id = Convert.ToInt32(ID8.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 8;
                }
                else if (progressBar1.Value == 7 & Assigner8.Enabled == false)
                {
                    int id = Convert.ToInt32(ID1.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 1;
                }
                else if (progressBar1.Value == 8)
                {
                    int id = Convert.ToInt32(ID1.Text.ToString());
                    Process p = Process.GetProcessById(id);
                    ShowWindow(p.MainWindowHandle, ShowWindowEnum.Restore);
                    SetForegroundWindow(p.MainWindowHandle);
                    Touche.Text = "";
                    progressBar1.Value = 1;
                }     
            }
        }
Merci d'avance si vous avez des questions n'hésitez pas !