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 :

C# et WMI information sur l'imprimante par défaut [Débutant]


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Par défaut C# et WMI information sur l'imprimante par défaut
    Bonjour ,

    Je voudrai récupérer des informations sur l'imprimante par défaut, pour cela je préfère utilise WMI.

    Mais voilà j'ai utilisé le WMI code creator mais ce dernier renvoi des infos sur la console. Mois je voudrai récupérer ces infos dans un string.

    J'ai fait la methode suivante :

    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
     
     public string Printer()
            {
                string MyPrinter,PRport,PRmod;
                try
                {
                    ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Printer Where Default = TRUE");                
     
                    foreach (ManagementObject queryObj in searcher.Get())
                    {
                        PRmod = queryObj["DeviceID"].ToString();
                        PRport = queryObj["PortName"].ToString();                    
                    }
                    MyPrinter = "Type : " + PRmod + "\nNom : " + PRport;
                    return MyPrinter;
     
                }
                catch (ManagementException e)
                {
                    MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
                }
            }
    Mais voilà sur le nom de la méthode j'ai l'erreur : Tout les chemins du code ne retourne pas la même valeur
    et au niveau de la ligne 14 j'ai deux erreurs sur PRmod et PRport comme quoi ces deux variables ne sont pas assignées, pourtant je les ai déclaré.

    Pourriez vous m'aider s'il vous plait?

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Citation Envoyé par newbi83 Voir le message
    Mais voilà sur le nom de la méthode j'ai l'erreur : Tout les chemins du code ne retourne pas la même valeur
    En cas d'erreur tu parts dans le catch et il n'y a pas de return.

    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
            public string Printer()
            {
                string MyPrinter = null;
                string PRport = null;
                string PRmod = null;
                try
                {
                    ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Printer Where Default = TRUE");
                    foreach (ManagementObject queryObj in searcher.Get())
                    {
                        PRmod = queryObj["DeviceID"].ToString();
                        PRport = queryObj["PortName"].ToString();
                    }
                    MyPrinter = "Type : " + PRmod + "\nNom : " + PRport;
                }
                catch (ManagementException e)
                {
                    MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
                }
                return MyPrinter;
            }
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre régulier
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Par défaut
    Merci pour ton aide j'ai fait ça du coup et ça marche :

    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
     
            public string Printer()//Infos sur l'imprimante par défaut
            {
                string MyPrinter;
                List<string> PR = new List<string>();
     
                try
                {
                    ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Printer Where Default = TRUE");
     
                    foreach (ManagementObject queryObj in searcher.Get())
                    {
                        PR.Add(queryObj["DeviceID"].ToString());
                        PR.Add(queryObj["PortName"].ToString());                    
                    }
     
                    MyPrinter = "Type : " + PR[0] + "\nNom : " + PR[1];
                    return MyPrinter;
     
                }
                catch (ManagementException e)
                {
                    MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
                    return(null);
                }
     
            }

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

Discussions similaires

  1. [AC-2003] Impression des état sur l'imprimante par défaut
    Par FHDLB dans le forum IHM
    Réponses: 1
    Dernier message: 24/11/2011, 17h41
  2. Réponses: 6
    Dernier message: 29/11/2010, 18h32
  3. Synchronisation sur le changement d'imprimante par défaut
    Par bleuerouge dans le forum Windows Forms
    Réponses: 0
    Dernier message: 11/01/2010, 09h53
  4. Macro pour imprimer sur "l'imprimante par défaut"
    Par Balboa24 dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 11/01/2009, 00h02
  5. WMI - information sur l'état d'un processus ?
    Par Timothy dans le forum VBScript
    Réponses: 1
    Dernier message: 07/08/2007, 11h14

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