Gracias de todos modos, ya encontre la solucion. Para todos los que tienen este problema, se soluciona cambiando el usuario de acceso anónimo IUSR_COMPUTERNAME del directorio virtual de la aplicación por otro que tenga permisos de administración, puede ser el usuario de inicio de sesión de windows.
Por cuestiones de seguridad, no muestra las impresoras cuando el usuario es el de acceso anónimo.
Y tengo otra duda, como puedo regresar un arreglo desde un método de la clase al cliente ASP sin que me marque "NO COINCIDEN LOS TIPOS"
En el ejemplo anterior, quisiera pasar el listado de impresoras disponibles en un arreglo hacia ASP. Entonces el codigo del componente seria así:
Código:
Private pd As PrintDocument
Public Function GetPrinters() As String()
Dim arr() As String
Dim i As Int16
Redim arr(0)
For i = 0 To pd.PrinterSettings.InstalledPrinters.Count - 1
Redim Preserve arr(i)
arr(i) = pd.PrinterSettings.InstalledPrinters(i).ToString
Next
Return arr
End Function
Y el código de la llamada al componente se vería asi:
Código:
<%
dim arr()
dim prn
dim i
set prn = server.CreateObject("PrintDLL.clsPrintDoc")
arr = prn.getPrinters()
response.Write("<h1>Lista de Impresoras en el Servidor</h1>")
for i =0 to ubound(arr)
response.write (cstr(arr(i)))
next
prn.Dispose()
set prn = nothing
%>
El codigo anterior me marca el error de "NO COINCIDEN LOS TIPOS" en la linea que está en negritas.
Alguien sabe como puedo pasar el arreglo, o en donde estoy mal?
Gracias a todos