Comment fermer une application .net à partir d'une instruction dans le code? [Résolu]

Signaler
Messages postés
83
Date d'inscription
vendredi 17 juillet 2009
Statut
Membre
Dernière intervention
27 juin 2016
-
Messages postés
14693
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2020
-
Bonjour Monsieur / Madame!

J'ai du mal à fermer mon application .net avec l'instruction Application.exit.

Je souhaite aussi savoir comment faire à partir de l'aide avoir les différentes valeurs des erreurs sous .net!

Merci de votre soutien!

Bonne journée à+

NIAMKE Francis

8 réponses

Messages postés
14693
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2020
144
Bonjour,

Ton code (celui que tu as mis) n'est pas digne d'être utilisé en .NET, il n'exploite aucune (ou très peu) des propriété du Framwork, c'est à supposer qu'il s'agit d'un code VB6.

Je vais essayer de t'aiguiller un peu en reprenant cette partie de code et en supprimant le Goto et en améliorant le tout (pour la maintenabilité et la lisibilité) :

'Procédure de gestion, appelée au lancement de la Form principale :
Public Sub Connecter()
dim lNbEssai as integer=0
    do
        if FrmConnection.ShowDialog()=DialogResult.Cancel then 'Utiliser le Cancel proposé dans l'énumération
            close
            exit sub
        end if
       
        if vConnection.ConnecterAUneBase() then
            exit sub
        else
            Moucharder(Now, vConnection.NomUser, 1,"Connection frauduleuse" , "" , "" )
            MessageBox.show("Tentative frauduleuse de connection!", "Connexion" , MessageBoxButtons.OK, MessageBoxIcon.Information)
        end if
        lnbessai+=1
        if lNbEssai>=3 then
            close
            exit sub
        end if
    loop
end sub

Ensuite, dans ta form FrmConnection, avant de fermer la fenêtre, tu définir Me.DialogResult=
DialogResult.Cancel 'en cas d'annulation
DialogResult.OK 'En cas de validation

Nota : Code tapé en-dehors de l'éditeur, peut comporter quelques erreurs involontaires.

Du coup, plus de goto, et un code plus lisible.
La sortie de l'application se fait sur le formulaire dans lequel est la sub et c'est tout, si ça ne fonctionne pas, je reste à l'écoute.

http://nhen0039.chez-alice.fr/index.php
Messages postés
14693
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2020
144
Bonjour,

Close, c'est pour fermer la fenêtre, tu peux utilise Me.Close. Si ça ne fonctionne toujours pas, est-ce que ta procédure "Connecter" est dans la form principale ?

http://nhen0039.chez-alice.fr/index.php
Messages postés
14693
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2020
144
Bonjour,

"J'ai du mal à fermer mon application .net avec l'instruction Application.exit."
Ton programme est encore dans la liste des tâches ? Si oui, execute-il une boucle, un thread ?

"Je souhaite aussi savoir comment faire à partir de l'aide avoir les différentes valeurs des erreurs sous .net!"
La liste des valeurs des erreurs ? "On error Goto" ? Si oui, préfère Try Catch en .NET.

http://nhen0039.chez-alice.fr/index.php
Messages postés
83
Date d'inscription
vendredi 17 juillet 2009
Statut
Membre
Dernière intervention
27 juin 2016

Bonjour Monsieur!


Dans mon programme, j'affiche une fenêtre pour permettre à l'utilisateur de saisir son nom et son mot de passe.


Je vérifie si il a le droit d'utiliser l'application; Si oui je continue mon traitement, sinon je lui affiche un message pour lui dire la connection a échouée!


Il a droit  à 3 tentives. Au délà de la 3ème tentive infructueuse je souhaite fermer l'application; j'appelle donc l'instruction Application.exit. Mais je constacte que l'application ne se ferme.

Qu'est ce qu'un thread?

Pourquoi vous préférez un try catch à un on error goto...?

Voir la partie du code concernée.


Connection:


FrmConnection.ShowDialog()



If



Not
ConnectCancel

Then








Exit



Sub






End



If






Do



While



Not
vConnection.ConnecterAUneBase()

And
i <= 3


   If
i >= 3

Then

      Moucharder(Now, vConnection.NomUser, 1,




"Connection frauduleuse"
,

""
,

""
)      MsgBox(


"Tentative frauduleuse de connection!"
, MsgBoxStyle.Information)      Application.Exit()


      Exit



Sub






   Else

      i = i + 1







      GoTo
Connection


   End



If


Loop

Merci de votre soutien!

Bonne soirée

NIAMKE Francis
Messages postés
83
Date d'inscription
vendredi 17 juillet 2009
Statut
Membre
Dernière intervention
27 juin 2016

Bonjour Monsieur!


J'ai essayé le code que vous m'avez apporté, mais je n y arrive pas à fermer mon application


il met un message d'erreur sur l'instruction close( )
Il dit que : Close n'est pas déclaré. La fonctionalité d'E/S de fichier est disponible dans l'espace de noms Microsoft.VisualBasic

Merci de m'apporter assistance!

NIAMKE Francis
Messages postés
83
Date d'inscription
vendredi 17 juillet 2009
Statut
Membre
Dernière intervention
27 juin 2016

Bonsoir Monsieur,


Mon souci est de fermer l'application ou la solution et non la fenêtre.


Merci de votre soutien!

Bonne soirée

NIAMKE Francis
Messages postés
14693
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2020
144
Bonjour,

Merci de ne marquer une réponse acceptée que si elle est la solution à votre problème. Car ce marquage réduit sensiblement la probabilité d'avoir une autre aide.

Quel est le type d'application, car si il y a un thread qui fonctione, il faut l'arrêter, sinon (avec les paramètres pas défauts), la fermeture de toutes les fenêtre induit l'arrêt de l'executable.

http://nhen0039.chez-alice.fr/index.php
Messages postés
14693
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2020
144
Bonjour,

Merci de répondre sur le même thread que celui qui a été ouvert.

De FNIAMKE :
Bonsoir Monsieur!

Ma procédure Connecter n'est pas dans ma form principale! Elle dans un module.

Merci de votre Assistance!

Bonne soirée!

---------------------------

Tu peux essayer Application.Exit, sinon, mémorise (dans un List(of ...) dans un module) les fenêtre ouvertes et fermes-les pour quitter. Je ne vois pas vraiment comment t'aider plus.

http://nhen0039.chez-alice.fr/index.php