Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Yaldabaot

#151
No le llego :(, estoy con esta pero me sigue dando error las clases.

http://www.codeproject.com/Articles/3313/Monitoring-a-Printer-Queue-from-VB-NET

he encontrado gran cantidad de artículos, pero todos son lo mismo que este

http://archive.devnewz.com/devnewz-3-20030622MonitoringaprintqueuefromVisualBasicNet.html

No he encontrado manera de hacerlo.
#152
Código (csharp) [Seleccionar]


WqlEventQuery query = new WqlEventQuery("Select * From __InstanceModificationEvent Within 1 Where TargetInstance Isa \"Win32_PrintJob\" And TargetInstance.PagesPrinted > PreviousInstance.PagesPrinted");







La acabo de cambiar pero es peor , porque ahora no me retorna nada. Saludos.

Lo único que necesito es obtener el valor o la cantidad de páginas que se imprimieron, no necesito el nombre del documento,ni la hora, ni el nombre de la impresora, puesto que esos datos ya los saco fácilmente, lamentablemente con esto de las páginas se me ha complicado enormemente!.

#153
Gracias Elektro.
#154
Tengo este código con lo que he modificado.

Código (csharp) [Seleccionar]


  Watcher = new ManagementEventWatcher();


                    WqlEventQuery query = new WqlEventQuery("Select * From __InstanceOperationEvent Within 1 " +   "Where TargetInstance ISA 'Win32_PrintJob'");
                    Watcher.Query = query;

                    dato = Convert.ToInt32(lblcola.Text); // Me indica si hay colas

                    if ( dato>= 1)
                    {
                    Watcher.EventArrived += new EventArrivedEventHandler(this.WmiEventHandler);
                   Watcher.Start();
                    //Watcher.Stop();

               
                 
               
                   lblNombreArchivo.Text = "";

                    }



Y tengo el método del evento

Código (csharp) [Seleccionar]



public void WmiEventHandler(object sender, EventArrivedEventArgs e)
        {

           // int contar;
         

            string prueba =
((ManagementBaseObject)e.NewEvent.Properties["TargetInstance"].Value)["PagesPrinted"].ToString();

                   
            MessageBox.Show(prueba.ToString());



        }



Pero sólo me retorna el valor 1, y me salen varios dialogos, pero no la cantidad exacta de las hojas tampoco.


#155
Voy a revisarlo, pero GRACIAS ME HAN SALVADO.
#156
Gracias por las sugerencias, se te agradece mucho. O sino voy a buscar otra manera. Saludos.
#157
Elektro, ¿ Hay alguna forma de hacerlo pero con un archivo abierto y no un proceso?.

Es decir yo tengo por ejemplo un txt sin guardar, ¿ Existe una forma de sacarle la ruta con sólo su nombre, tengo un evento que saca el nombre y me retorna por ejemplo Untitled Notepad, hay alguna forma?

He estado tratando de hacerlo con filewarcher, pero quedo igual porque necesito la ruta.
#158
Bueno trataré de plantearlo de otra manera,

Alguno sabe cómo contar o cómo obtener la cantidad de páginas que se han impreso en un documento, he tenido muchos dolores de cabeza por lo mismo y no he podido lograrlo.

Necesito saber si por ejemplo tengo un documento llamado "hola.txt" el usuario dijo que imprimió 5 hojas y lo despliegue.
#159
Ya lo arreglé, muchas gracias por tu tiempo y paciencia Elektro.

Código (csharp) [Seleccionar]


public string[] GetProcessPath(string ProcessName)
        {

            if (ProcessName.EndsWith(".exe", StringComparison.OrdinalIgnoreCase))
            {
                ProcessName = ProcessName.Remove(ProcessName.Length - 4);
            }
           

            return (from p in System.Diagnostics.Process.GetProcesses() where p.ProcessName.Equals(ProcessName, StringComparison.OrdinalIgnoreCase) select p.MainModule.FileName).ToArray();

            }



#160
Disculpa Elektro, no he podido implementarlo, me da una serie de errores.

Código (csharp) [Seleccionar]


return (from p in Diagnostics.Process.GetProcesseswhere p.ProcessName.Equals(ProcessName, StringComparison.OrdinalIgnoreCase)p.MainModule.FileName).ToArray;



Y estos son los using que he estado usando

Código (csharp) [Seleccionar]



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Drawing.Printing;
using System.Runtime.InteropServices;
using System.Printing;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Diagnostics;
using Microsoft.VisualBasic;



Errores tales como que no reconoce p, tambien con puntos y comas, no se si no estare poniendo alguna referencia.