Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Status stampaca u C#

[es] :: .NET :: Status stampaca u C#

[ Pregleda: 968 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
*.ppp.panet.co.yu.



+3 Profil

icon Status stampaca u C#13.08.2009. u 10:13 - pre 180 meseci
Vec neko vrijeme pokusavam da rijesim problem, da ga tako nazovem: on-line monitorisanja statusa stampaca (operativni sistem je Windows XP).

Jednostavno, zbog prirode aplikacije, na kojoj radim, ne mogu da posaljem nesto na stampu ako je, u tom trenutku, stampac iz bilo kog razloga nefunkcionalan.
Pokusao sam sa onim sto sam mogao da nadjem iz primjera na Internetu, a svodi se na dobijanje informacija o statusu stampaca iz klase Win32_Printer:
Code:

        private void button1_Click(object sender, EventArgs e)
        {
            ManagementScope scope = new ManagementScope(@"\root\cimv2");
            scope.Connect();
            // Select Printers from WMI Object Collections
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
            string printerName = ""; // pomocni string za naziv printera
            foreach (ManagementObject printer in searcher.Get())
            {
                printerName = printer["Name"].ToString().ToLower();
                comboBox1.Items.Add(printerName);
                if (printerName.Equals(@"hp laserjet p2015 series pcl 5e"))
                {
                    MessageBox.Show("Status printera: "+printer["PrinterStatus"].ToString()+", stanje printera :" +printer["PrinterState"].ToString()+", workoffline = "+printer["WorkOffline"].ToString()+", atribut: "+printer["Attributes"].ToString());
                }
            }
        }


E sad, svojstva: PrinterStatus i PrinterState UVIJEK daju iste vrijednosti (bez obzira kakvo je stanje stampaca: ukljucen, neukljucen, ima/nema papira, ima/nema tonera, ...). PrinterStatus UVIJEK vraca vrijednost: 3, a PrinterState UVIJEK vraca vrijednost: 0. Ovo vazi za SVE modele stampaca sa kojima sam imao prilike da radim (to jest, da testiram ovo parcence koda). Svojstvo: WorkOffline, takodje, UVIJEK daje istu vrijednost: false (bez obzira na stanje stampaca). Jedino, i to NE KOD SVIH stampaca koje sam imao prilike da testiram, svojstvo: Attributes, vraca tacnu informaciju u vezi WorkOffline.

Na jednom forumu sam uspio pronaci informaciju da je to zato sto Win32_Printer cita status stampaca iz spooler-a, i da ako driver proizvodjaca stampaca zaobilazi spooler, ne mogu dobiti tacnu informaciju o stanju stampaca. Preporuka je da se informacije 'iscupaju' direktno iz samog drajvera - KAKO TO UCINITI IZ C#?

Jednostavno, htio bih da napravim profi kontrolu stampaca, tako da se operateru prezentira tekuci status (sto preciznije) stampaca, da mu se onemoguci akcija stampanja ako isti nije funkcionalan, itd

Zaista sam zahvalan za bilo kakvu sugestiju ili ideju ...

[Ovu poruku je menjao Shadowed dana 13.08.2009. u 16:36 GMT+1]
Programming is fun, but writing good software is hard ...
 
Odgovor na temu

[es] :: .NET :: Status stampaca u C#

[ Pregleda: 968 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.