IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Passer variable de winform à classe Program du projet


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2018
    Messages : 35
    Par défaut Passer variable de winform à classe Program du projet
    Bonjour,
    Afin de détecter la fermeture de l application soit par un clic sur la croix rouge de winform ou par le gestionnaire de tache,
    J ai trouver une fonction qui s implimente dans la classe program du projet,
    J ai modifier le code en ajoutant une fonction qui inserre une ligne dans BD sqlserver pour récupérer la date du fermeture.
    Le projet est un formulaire qui contient un textbox
    Maintenant je veux récupérer ce champs dans la fonction sqlserver pour l enregiqtrer dans la base.
    Merci d avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 188
    Par défaut
    Bonsoir,
    As-tu déjà fait quelque chose ? As-tu un problème sur lequel tu butes ? On ne va tout de même pas coder à ta place

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2018
    Messages : 35
    Par défaut
    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
    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Diagnostics;
    using System.Linq;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows.Forms;
     
    namespace Avancement_OFS
    {
        static class Program
        {
     
            /// Point d'entrée principal de l'application.
            /// </summary>
            /// 
     
            static Process checker;
            static Process main;
            static int mainProcessID;
            static string user = "";
            [STAThread]
            public static string SeparateName(string fullName)
            {
                string[] wordsInText = fullName.Split(' ');
                return wordsInText[0];
            }
            static void Main(string[] args)
            {
     
                //Application.EnableVisualStyles();
                //Application.SetCompatibleTextRenderingDefault(false);
                //Application.Run(new Authentification());
                //Main App Process.
                if (args.Length == 0)
                {
                    //Saves current process info to pass on command line.
                    main = Process.GetCurrentProcess();
                    mainProcessID = main.Id;
     
                    //Initializes the helper process
                    checker = new Process();
                    checker.StartInfo.FileName = main.MainModule.FileName;
                    checker.StartInfo.Arguments = mainProcessID.ToString();
     
                    checker.EnableRaisingEvents = true;
                    checker.Exited += new EventHandler(checker_Exited);
     
                    //Launch the helper process.
                    checker.Start();
     
                    Application.Run(new Authentification());
     
     
                }
                else //On the helper Process
                {
                    main = Process.GetProcessById(int.Parse(args[0]));
     
                    main.EnableRaisingEvents = true;
                    main.Exited += new EventHandler(main_Exited);
     
                    while (!main.HasExited)
                    {
                        Thread.Sleep(9000); //Wait 1 second. 
     
                    }
     
                    //Provide some time to process the main_Exited event. 
                    Thread.Sleep(10000);
                }
            }
     
            static void checker_Exited(object sender, EventArgs e)
            {
                //This only checks for the task manager process running. 
                //It does not make sure that the app has been closed by it. But close enough.
                //If you can think of a better way please let me know.
                if (Process.GetProcessesByName("taskmgr").Length != 0)
                {
     
     
                     SqlConnection cnx_save_trace = new SqlConnection(" Data Source=***;Initial Catalog=OFS_DEV;Integrated Security=True");
     
                    SqlCommand cmd_save = new SqlCommand("insert into SUIVI_ACTIVITE_USER([USER_NAME],[DT])values(@name,@dt_s)", cnx_save_trace);
                    cnx_save_trace.Open();
                    cmd_save.Parameters.AddWithValue("@name",user);//recuperer user du formulaire Authentification
                    cmd_save.Parameters.AddWithValue("@dt_s", DateTime.Now);
                    cmd_save.ExecuteNonQuery();
                    cnx_save_trace.Close();
                    //MessageBox.Show("Task Manager killed helper process.");
     
                    //If you like you could kill the main app here to. 
                    //main.Kill();
                }
            }
            static void main_Exited(object sender, EventArgs e)
            {
                //This only checks for the task manager process running. 
                //It does not make sure that the app has been closed by it. But close enough.
                //If you can think of a better way please let me know.
                if (Process.GetProcessesByName("taskmgr").Length != 0)
                {
                    SqlConnection cnx_save_trace = new SqlConnection(" Data Source=***;Initial Catalog=OFS_DEV;Integrated Security=True");
     
                    SqlCommand cmd_save = new SqlCommand("insert into SUIVI_ACTIVITE_USER([USER_NAME],[DT])values(@name,@dt_s)", cnx_save_trace);
                    cnx_save_trace.Open();
                    cmd_save.Parameters.AddWithValue("@name",user);//recuperer user du formulaire Authentification
                    cmd_save.Parameters.AddWithValue("@dt_s", DateTime.Now);
                    cmd_save.ExecuteNonQuery();
                    cnx_save_trace.Close();
                }
            }
        }
    }

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 188
    Par défaut
    Salut,
    Je trouve la construction bizarre mais pourquoi ne pas remplacer cette ligne
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run(new Authentification());
    en
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    ihm = new Authentification(); Application.Run(ihm);
    Avec une déclaration de ton ihm en static au niveau de ta classe.

    Comme ça tu pourras peut-être accéder à ihm.txtUser ?

Discussions similaires

  1. passer variables entre classes
    Par MOLOT dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 23/02/2010, 08h41
  2. Passer une variable d'une class a une autre
    Par haaa11 dans le forum Langage
    Réponses: 5
    Dernier message: 09/11/2008, 15h18
  3. passer une variable entre deux classes as3
    Par sanatou dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 27/06/2008, 21h52
  4. Passer une variable d'une classe à l'autre
    Par Gibou dans le forum C++
    Réponses: 2
    Dernier message: 16/06/2006, 08h38
  5. Réponses: 11
    Dernier message: 09/12/2005, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo