bonjour,

J'ai un problème dans mon programme sur lequel je me casse la tête depuis quelques jours.

A un moment de mon programme je dit que si ma valeur = 9999999999 le programme doit quitté l'application en tuant le processus du programme.
Oui je sais il y a la fonction application.exit() mais cette fonction marche pas elle fait juste planté le pc car dès que cette fonction est appellé le pc est en freeze.

Donc mon code est le suivant :

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
Try
            'premier IF
            If donnee = valeurescape Then  ' permet a l'utilisateur de quitter le programme 
 
                sw = New StreamWriter(F_to_SAP) 'création du fichier pour fermer la transaction sap
                sw.WriteLine(donnee) 'écrit la chaine qui se trouve dans le textbox ascii dans une variable
                sw.Close() ' ferme l'option d'écriture dans le fichier
                RS232.Write(Chr(27) & "#5" & donnee & Chr(27) & "E" & "fermeture" & Chr(27) & "E" & "programme" & Chr(13))
                RS232.Close() ' ferme le port
                Process.Start("C:\Scanning\bin\RS232_CLAVIER.EXE") 'demarre le programmme clavier
 
                For Each p In plist                                 '***
                    Try                                             '  *
                        If p.MainModule.ModuleName.ToUpper() = "TEST_RS232.EXE" Then
                            p.CloseMainWindow()                     '  *
                            p.Kill()                                '  *
                        End If                                      '  * FERME LA FENETRE DU
                    Catch ex As Exception                           '  * PROGRAMME ET KILL
                    End Try                                         '  * LE PROCESSUS du programme RS232  
                Next p                                              '*** (quitte l'application)
 
            Else
                Try
                    'deuxieme IF
                    If Not File.Exists(F_to_SAP) Then ' Si le fichier n'existe pas. On le crée
 
                        sw = New StreamWriter(F_to_SAP) 'création du fichier
                        sw.WriteLine(donnee) 'écrit la chaine sui se trouve dans la varible afficher dans le textBox
                        sw.Close() 'ferme l'option d'écriture dans les fichier
                        sw = Nothing
                        'donnee = Nothing
                    End If
                Catch
                    MsgBox("test erreur")
                End Try
            End If
        Finally
 
            If Not IsNothing(sw) Then sw.Close() 'Fermeture streamwriter
 
        End Try
Alors dès que j'arrive a cette partie de code, dans le débogage je peux voir que ma variable "donnees" est égale a ma variable "valeurescape" (qui est configurer a 9999999999 dans un .ini) mais lorsque je continue mon débogage, le premier IF ne se fait pas et le programme passe directement au deuxième IF pourtant les deux valeur sont identiquent.

J'ai beau changer les valeurs, les rentrées en dur mon problème persiste alors qu'avant je tiens a le precisé il fonctionait normalement c'est du jour au lendemain que le problème est apparu pourtant je n'ai pas changer mon code.

Si quelqu'un peut m'éclairer sur ce problème ca serait sympa, je sais plus comment faire.

Merci d'avance.