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 :

Lancer une commande cmd en c# [Débutant]


Sujet :

C#

  1. #1
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 291
    Points
    291
    Billets dans le blog
    1
    Par défaut Lancer une commande cmd en c#
    Bonjour

    Je débute en C# et je voudrais reproduire ce que j'ai fait en vb.net il y a qq années, c'est à dire envoyer un fichier de commande sur une imprimante Zebra (étiqueteuse)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    My.Computer.FileSystem.WriteAllText("C:\Temp\test_vs2013.txt", code_zebra, False)
            chaine_impression = "cmd.exe /c COPY C:\temp\test_vs2013.txt " & My.Settings.imprimante
            Shell(chaine_impression)

    Mais je n'arrive pas à le reproduire en C# sur un autre projet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Process.Start(@"C:\Windows\System32\cmd.exe /c COPY C:\Temp\EtiqGesDoc.txt" + Properties.Settings.Default.imprimante);
    j'ai bien paramétré mon imprimante mais j'ai une erreur System.ComponentModel.Win32Exception* : 'Le fichier spécifié est introuvable'

    merci de votre aide

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    Commence déjà par juste rajouter un espace à la fin de ta chaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Process.Start(@"C:\Windows\System32\cmd.exe /c COPY C:\Temp\EtiqGesDoc.txt " + Properties.Settings.Default.imprimante);
    Bon code,
    J@ck.

  3. #3
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 291
    Points
    291
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Process.Start(@"C:\Windows\System32\cmd.exe /c COPY C:\Temp\EtiqGesDoc.txt " + Properties.Settings.Default.imprimante);
    J'ai toujours la même erreur

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    ta question est général à l'utilisation de commande, ou tu cherches juste à faire une copie ?
    Dans le deuxième cas pourquoi ne pas utiliser les fonctionnalités proposées par le framework (File.Copy)?

  5. #5
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 291
    Points
    291
    Billets dans le blog
    1
    Par défaut
    J'utilise ce procédé pour communiquer avec une imprimante en lui envoyant un fichier de commande qu'elle peut comprendre.
    un lien qui explique peut être mieux que moi le fonctionnement de ces imprimantes : http://domeu.blogspot.fr/2015/07/imp...t-spooler.html
    Ce n'est donc pas une copie "simple" de fichier d'un répertoire vers un autre.

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2015
    Messages : 38
    Points : 126
    Points
    126
    Par défaut
    Salut,

    Je te copie le code d'un mini launcher que j'avais fait à titre d'exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var process = new Process();
    process.StartInfo.FileName = "cmd.exe";
    process.StartInfo.WorkingDirectory = @"C:\Program Files\MongoDB\Server\3.2\bin";
    process.StartInfo.Arguments = "/c mongod";
    process.Start();

  7. #7
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 291
    Points
    291
    Billets dans le blog
    1
    Par défaut
    ça marche !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Process cmd = new Process();
                    cmd.StartInfo.FileName = @"cmd.exe";
                    cmd.StartInfo.Arguments = @" /c COPY C:\Temp\EtiqGesDoc.txt " + Properties.Settings.Default.imprimante;
     
                    cmd.Start();

    merci bcp !

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

Discussions similaires

  1. Lancer une commande dans le cmd
    Par guy16 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 18/05/2015, 18h55
  2. Lancer une commande cmd
    Par juju1988 dans le forum Windev Mobile
    Réponses: 1
    Dernier message: 13/03/2012, 15h51
  3. [Dos] Lancer une commande dos sans attendre la fin
    Par MrEddy dans le forum Windows
    Réponses: 4
    Dernier message: 09/06/2005, 17h38
  4. Lancer une commande en C.
    Par ronan99999 dans le forum Windows
    Réponses: 2
    Dernier message: 26/07/2004, 16h25
  5. Réponses: 1
    Dernier message: 30/04/2004, 11h36

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