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 :

Récupérer chemin d'un job dans spool d'impression


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 63
    Points : 44
    Points
    44
    Par défaut Récupérer chemin d'un job dans spool d'impression
    Bonjour,


    Je suis actuellement en train de concevoir une petite procédure qui doit me permettre de lire le spool d'une imprimante virtuelle afin de récupérer le document qui correspond à mon job dans le spool.

    Voici le code que j'ai pour l'instant
    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
    PrintServer myPrintServer = new PrintServer();
                PrintQueueCollection myPrintQueues = myPrintServer.GetPrintQueues();
                foreach (PrintQueue pq in myPrintQueues)
                {
     
                    if (pq.FullName == "iram0101")
                    {
                        pq.Refresh();
                        PrintJobInfoCollection jobs = pq.GetPrintJobInfoCollection();
                        foreach (PrintSystemJobInfo job in jobs)
                        {
                            MessageBox.Show(job.Name.ToString());
                            MessageBox.Show(pq.Location.ToString());
     
     
                        }
    J'arrive bien à récupérer le nom des job contenu dans le spool et toute les autres information mais impossible de récupérer le chemin de ces jobs qui sont pourtant bien présent sur le disque dur (win/sys32/spool/printer).
    J'ai vu qu'il existait une méthode "Stream" mais lorsque je l'utilise le résultat est vide.


    Quelqu'un aurait il un avis sur la question?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 63
    Points : 44
    Points
    44
    Par défaut
    J'ai trouvé une solution à mon problème.

    Je donne l'astuce pour que la question ne reste pas sans réponse, donc il est impossible de récupéré le chemin d'un document d'un spool d'impression.
    La seul solution que j'ai trouvé et qui fonctionne plutot bien, c'est de scruté le dossier de spool(C:\Windows\System32\spool\PRINTERS), j'analyse chaque fichier dans ce dossier (les fichier contiennent le nom du spool dans mon cas) et du coup je récupère le chemin.

    Voici mon code:
    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
      public void lectureSpooler()
            {
                string[] files;
                // pour avoir les noms des fichiers et sous-répertoires
                files = Directory.GetFiles("C:\\Windows\\System32\\spool\\PRINTERS","*.SPL");
                int filecount = files.GetUpperBound(0) + 1;
                for (int i = 0; i < filecount; i++)
                {
                    string nom_spool="";
     
                    string[] text= System.IO.File.ReadAllLines(files[i]);
                    string sPattern = "<Spool>";
                    //string sPattern2 = "[CDATA[AMXML]]";
                    foreach (string s in text)
                    {
                        if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
                        {
                            nom_spool = s.Substring(16, 10);
                            textBox1.Text += (nom_spool + " ------> ");
                        }
                    }
                    textBox1.Text += (System.IO.Path.GetFileName(files[i])) + Environment.NewLine;
                }
            }

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2014, 09h02
  2. Réponses: 2
    Dernier message: 21/11/2008, 11h17
  3. récupérer le chemin de l'mage dans le formulaire modifier
    Par majda_afkir dans le forum ASP.NET
    Réponses: 1
    Dernier message: 01/09/2008, 14h20
  4. [RCP] récupérer chemin de l'executable dans le code
    Par stachus dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 02/10/2007, 12h52
  5. [VB6] Récupérer chemin dans server FTP et naviguer
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 25/07/2006, 23h03

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