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 :

Process.start qui merdouille


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Par défaut Process.start qui merdouille
    Bonjour

    J'ai un programme (prog A) qui se coupe à une certaine heure tous les jours le soir, et un deuxième programme (prog B) qui lance le premier le matin suivant les heures repris d'un fichier texte.
    Le programme B démarre en même temps que windows ou manuellement

    Si je lance le programme B manuellement, celui si démarre bien le programme A sans soucis, le programme A à accès a ses fichiers textes dans son répertoire

    Si Windows démarre le programme B, il lance le programme A MAIS ont dirait avec des autres droits car dans ce cas si le programme B n'a pas accès a ses fichiers textes.

    a savoir :
    Le programme démarre avec windows car j'ai rajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Microsoft.Win32.RegistryKey Key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
                    //Microsoft.Win32.RegistryKey Key = Microsoft.Win32.Registry.cure
                    Key.SetValue("LOGICIELA", Application.ExecutablePath + " -S");
                    Key.Close();
                    Key = null;
    Le programme A lance le B avec :
    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
    if (File.Exists("C:\\tutu\\LogicielB.exe"))
                    {
                        try
                        {
                            Process.Start("C:\\tutu\\LogicielB.exe");
                        }
                        catch (Exception e) 
                        {
                            MessageBox.Show("Error launching the software !\n" + e.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Error launching the software !\nThe file does not exist", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
    Avez-vous une solution à mon problème ?
    Merci d'avance

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par techinfo01 Voir le message
    Le programme démarre avec windows car j'ai rajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Microsoft.Win32.RegistryKey Key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
                    //Microsoft.Win32.RegistryKey Key = Microsoft.Win32.Registry.cure
                    Key.SetValue("LOGICIELA", Application.ExecutablePath + " -S");
                    Key.Close();
                    Key = null;
    Pourquoi être passé en direct par la base de registre ? Il vaudrait déjà mieux utiliser le planificateur de tâches de Windows...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Par défaut
    bon je pense que j'ai ma réponse (faudra faire quelques tests), en fait c'est simplement que le WorkingDirectory était incorrect en fessant simplement Process.Start("C:\\tutu\\LogicielB.exe"); .

    Donc voila le code qui semble fonctionné :
    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
     
    if (File.Exists("C:\\tutu\\LogicielB.exe"))
                    {
                        try
                        {
                            Process tutu = new Process();
                            tutu.StartInfo.FileName = "C:\\tutu\\LogicielB.exe";
                            tutu.StartInfo.UseShellExecute = true;
                            tutu.StartInfo.CreateNoWindow = true;
                            tutu.StartInfo.WorkingDirectory = "C:\\tutu";
                            tutu.Start();
                        }
                        catch (Exception e) 
                        {
                            MessageBox.Show("Error launching the software !\n" + e.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Error launching the software !\nThe file does not exist", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    Pourquoi être passé en direct par la base de registre ? Il vaudrait déjà mieux utiliser le planificateur de tâches de Windows...
    Car je ne l'utilise jamais et donc je j'avais pas eu l'idée de cette option, de plus le logiciel B faut aussi office de watchdog.

    Faudra que je me penche plus sur le planificateur de tâches de Windows à l'avenir

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    C'est avantageux sur plusieurs points :
    - Gestion en cas de problème (reprise, décalage...)
    - Gestion du compte utilisateur qui sera utilisé pour lancer le programme
    - Logs
    - Etc.

    Donc ça vaut le coup d'oeil Et si jamais tu te trouves dans le cas où tu ne peux pas utiliser le planificateur de tâches de Windows, tu peux implémenter des fonctionnalités équivalentes (et + encore) en C# grâce à la librairie Quartz.net. Tu peux stocker tes déclenchements en base de données par exemple, ce qui permet une planification plus souple...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET 1.1] Ping silencieux avec Process.Start()
    Par toniolol dans le forum Windows Forms
    Réponses: 6
    Dernier message: 30/09/2008, 13h35
  2. [C# 2.0] Un hello world qui merdouille
    Par Floyd dans le forum Services Web
    Réponses: 1
    Dernier message: 21/05/2007, 14h28
  3. Problème de Process.Start depuis une page ASPX
    Par LudVichzme dans le forum ASP.NET
    Réponses: 3
    Dernier message: 30/04/2007, 20h05
  4. java web start qui veut pas se lancer
    Par calvin dans le forum JWS
    Réponses: 4
    Dernier message: 30/06/2004, 11h42

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