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 :

Démarrer une installation [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 152
    Points : 56
    Points
    56
    Par défaut Démarrer une installation
    Bonjour,

    J'ai une application Windows qui vérifie si toutes les applications sur le poste de travail y sont. Un genre de "Checklist". Lorsqu'une application n'est pas installée j'ai un bouton qui permet de procéder à l'installation.

    Voici ma déclaration :

    NetPath = "\\Server\folder\"
    CommandLine = "toto.exe /passive /quiet"

    ProcessStartInfo proc = new ProcessStartInfo();
    proc.UseShellExecute = false;
    proc.WorkingDirectory = NetPath;
    proc.FileName = CommandLine;
    proc.Domain = "DOM";
    proc.UserName = "TOTO";
    proc.Password = pwd;
    Process.Start(proc);
    Je reçois un message qui m'informe que le fichier spécifié est introuvable Et je vous assure que ce n'est pas le cas.

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Essaie un peu ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NetPath = @"\Server\folder\"
    Normalement dans une chaine de caractère, tu dois doublez les \ quand elle représente un chemin ce qui est ton cas. le @ permet de ne pas faire de doublage.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    ProcessStartInfo a 2 propriétés pour spécifier la ligne de commande : FileName et Arguments. La première permet de spécifier le fichier a exécuter (toto.exe) et la deuxième permet de spécifier les arguments (/passive /quiet)

  4. #4
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Normalement dans une chaine de caractère, tu dois doublez les \ quand elle représente un chemin ce qui est ton cas. le @ permet de ne pas faire de doublage
    Oui, dans mon exemple je ne l'avais pas mis, mais effectivement dans mon code la syntaxe est bonne. Merci


    ProcessStartInfo a 2 propriétés pour spécifier la ligne de commande : FileName et Arguments. La première permet de spécifier le fichier a exécuter (toto.exe) et la deuxième permet de spécifier les arguments (/passive /quiet)
    J'ai pourtant essayé et ça ne fonctionne pas, je ne sais pas pourquoi !

    Merci

  5. #5
    Membre à l'essai
    Profil pro
    Pokemon
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pokemon
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 12
    Points
    12
    Par défaut
    C'est Server\folder qu'il trouve pas ou toto.exe ?

    si c'est Server\folder
    je pense que tu devrais essayer @"Server\folder" (sans le '\' au début) si tu veux faire un chemin relatif

  6. #6
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    J'ai déjà eu des problèmes d'accès de ce genre avec des partages réseaux. Par code le répertoire était inaccessible.

    Je passais par l'explorateur de fichier, cliquait sur celui-ci qui était accessible PAR WINDOWS, et après cette manipulation, il devenait accessible aussi pour mon application.

    Je n'ai hélas pas encore eu le temps de creuser dans ce sens, mais il me semble que c'est le même genre de problème. Si tu peux faire le test chez toi pour confirmer.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  7. #7
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Salut,

    En effet, comme infosam76 le précise, l'accès au répertoire réseau depuis le code pose des problèmes...
    J'ai trouvé cette alternative qui m'a permis d’accéder à mes fichiers sur lecteur réseau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    Process delete = Process.Start("net.exe", @"use K: /DELETE /YES"); //Suppression du lecteur K:
                    delete.WaitForExit();
                    Process create = Process.Start("net.exe", @"use K: \\SERVEUR\Svg password /USER:login /PERSISTENT:YES"); //création du lecteur K:
                    create.WaitForExit();
    Une fois ces commandes passées, ton accès réseau au répertoire voulu est de nouveau dispo

  8. #8
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    J'accède au répertoire sans problème, c'est lorsque je veux démarrer l'installation du produit que j'ai un problème<

    Ex: Je veux installer adobe Flash :

    J'accède au répretoire \\Adobe\Flash
    Dans celui-ci je veux démarrer le .exe, et c'est à ce moment qu'il refuse de démarrer l'installation.

    L'idée de connecter au lecteur et ensuite démarrer l'installation est une chose que je vais tester.

    Je vous reviens avec les résulats.

    Merci

  9. #9
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Citation Envoyé par FrameBreak Voir le message
    Salut,

    En effet, comme infosam76 le précise, l'accès au répertoire réseau depuis le code pose des problèmes...
    J'ai trouvé cette alternative qui m'a permis d’accéder à mes fichiers sur lecteur réseau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    Process delete = Process.Start("net.exe", @"use K: /DELETE /YES"); //Suppression du lecteur K:
                    delete.WaitForExit();
                    Process create = Process.Start("net.exe", @"use K: \\SERVEUR\Svg password /USER:login /PERSISTENT:YES"); //création du lecteur K:
                    create.WaitForExit();
    Une fois ces commandes passées, ton accès réseau au répertoire voulu est de nouveau dispo
    Bien vu l'appel du net use avant l'accès aux fichiers. J'utilise cette commande dans des fichiers batch pour rétablir mes connexions au redémarrage du pc, mais j'avoue ne jamais avoir penser à les intégrer dans du code. Une bonne pratique à noter.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  10. #10
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Citation Envoyé par Whippet Voir le message
    J'accède au répertoire sans problème, c'est lorsque je veux démarrer l'installation du produit que j'ai un problème<

    Ex: Je veux installer adobe Flash :

    J'accède au répretoire \\Adobe\Flash
    Dans celui-ci je veux démarrer le .exe, et c'est à ce moment qu'il refuse de démarrer l'installation.
    Vérifie tes droits d'accès (lecture/écriture) au répertoire.

  11. #11
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Vérifie tes droits d'accès (lecture/écriture) au répertoire.
    Il n'y a pas de problème de ce côté, les droit Users sont Read/Write/execute.

    Je viens de faire le test avec net use, et ça fonctionne bien pour connecter un lecteur au répertoire défini.

    Dans ce répertoire, il y a le fichier à démarrer.... je reçois toujours le fichier spécifié est introuvable.

    Je me retouve avec un lecteur X:\folderA\folderB

    Donc, je fais :

    CommandLine = Install.vbs

    Process Run = Process.Start(@"X:\" + CommandLine);

    Ça ne fonctionne pas.

  12. #12
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Quel est le contenu de ta variable CommandLine SVP
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  13. #13
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    CommandLine dans ce cas est Install.Vbs

    Elle peut aussi prendre la veleur : Setup.exe /s

    Merci

  14. #14
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Et pourquoi ne pas simplement copier le fichier à installer sur le poste de travail, et lancer l’installation...
    Cette méthode contournerait tes problèmes actuels

  15. #15
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    C'est une idée, mais je vais devoir gérer la copie, l'installation et enfin supprimer.

    Si je n'arrive pas à faire autrement, ça être ma solution.

    Merci

  16. #16
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Ce qui reviendrait à utiliser ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    System.IO.File.Copy(sourceFileName, destFileName);
    ...
    System.IO.File.Delete (destFileName);
    ...
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  17. #17
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Yahoo !

    Selon le cas que j'ai un .exe, .msi ou un .vbs.

    Je dois traiter avec ProcessStartInfo de façon différente. Dont voici l'exemple.

    ProcessStartInfo Proc = new ProcessStartInfo();
    Proc.UseShellExecute = false;
    Proc.WorkingDirectory = @NetPath; //ne semble pas servir à grand chose, mais je le laisse.

    si c'est un .exe
    Proc.FileName = @NetPath + @"\" + CommandLine; .exe
    Proc.Arguments = Arguments;

    Si c'est un .msi
    Proc.FileName = "MSIEXEC.EXE";
    Proc.Arguments = "/i" + @NetPath + @"\" + CommandLine + " " + Arguments;

    si c'est un .vbs
    Proc.FileName = "CSCRIPT.EXE";
    Proc.Arguments = "//nologo " + @NetPath + @"\" + CommandLine + " " + Arguments;

    Proc.Domain = "dom";
    Proc.UserName = "user";
    Proc.Password = pwd;
    Process.Start(Proc);
    Merci pour toute votre aide. J'espère que ceci pourra rendre service.
    A+

  18. #18
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Merci pour ta solution c'est bon à savoir.

    N'oublie pas de marquer la solution comme résolue ;-)
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

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

Discussions similaires

  1. démarrer tomcat installé sur une machine distante
    Par info007 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 19/12/2008, 16h26
  2. Bases à supprimé après une installation de SQL Server ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/03/2005, 16h57
  3. Message d'erreur à l'exécution d'une install
    Par titof dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 22/03/2005, 11h20
  4. Problème de BOOT sur CD pour une installation d'une DEBIAN
    Par black is beautiful dans le forum Debian
    Réponses: 7
    Dernier message: 22/09/2004, 21h15
  5. Créer une install
    Par Erwin dans le forum MFC
    Réponses: 13
    Dernier message: 27/01/2004, 18h25

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