IADsPrintQueueOperations

26/04/2004 - 13:35 por Sergio | Informe spam
Hola a todos:

Necesito poder controlar una impresora conectada a mi
servidor (windows 2000 server) y para pausarla, reanudar
la impresion y cancelar los documentos he encontrado que
la mejor forma es usando la interface
ADsPrintQueueOperations pero no se como usarla en c#
sobre .Net, ja que los ejemplos estan en visual basic y
c++.

Alguien me puede ayudar?

Gracias
 

Leer las respuestas

#1 Alejandro Campos Magencio [MS]
27/04/2004 - 15:40 | Informe spam
En .NET tenemos System.DirectoryServices para acceder al Directorio Activo.
DirectoryServices redefine las estructuras más comunes que hay en ADSI.
Ahora bien, si lo que tú quieres usar no está en DirectoryServices, tendrás
que acceder a ADSI desde .NET mediante COM Interop:

Invoking ADSI
http://msdn.microsoft.com/library/d...g_adsi.asp

Using COM Interop to Access ADSI
http://msdn.microsoft.com/library/d...s_adsi.asp

Lo más parecido a un ejemplo que he encontrado de como utilizar
IADsPrintQueueOperations en C# es el siguiente (no lo he probado):

Assembly ensamblado = Assembly.LoadWithPartialName("Interop.ActiveDs");
DirectoryEntry objetoNET = new DirectoryEntry("WinNT://Server/Printer
name");
Object objetoCOM = objetoNET.NativeObject;

Type tipo1 = ensamblado.GetType("ActiveDs.IADsPrintQueueOperations");
IADsCollection coleccion = (IADsCollection) tipo1.InvokeMember( "PrintJobs",
BindingFlags.Public | BindingFlags.InvokeMethod, null, objetoCOM, new
object[]{});

Type tipo2 = ensamblado.GetType("ActiveDs.IADsPrintJobOperations");
Object miembro = coleccion.GetObject("5");
tipo2.InvokeMember("Pause", BindingFlags.Public | BindingFlags.InvokeMethod,
null, miembro, new Object[]{});


El único ejemplo completo lo he encontrado en VB6 con ADSI, pero puede ser
de utilidad si se mezclan las ideas que contiene con todo lo anterior:

201033 HOWTO: Access ADSI PrintJob, Session, and Resource Objects
http://support.microsoft.com/?id 1033

Un saludo,

Alejandro Campos Magencio [MS]

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.
"Sergio" wrote in message
news:43c301c42b82$9f6648c0$
Hola a todos:

Necesito poder controlar una impresora conectada a mi
servidor (windows 2000 server) y para pausarla, reanudar
la impresion y cancelar los documentos he encontrado que
la mejor forma es usando la interface
ADsPrintQueueOperations pero no se como usarla en c#
sobre .Net, ja que los ejemplos estan en visual basic y
c++.

Alguien me puede ayudar?

Gracias

Preguntas similares