Establecer impresora predeterminada.

14/08/2006 - 12:11 por Montse | Informe spam
Hola!

Necesito realizar una aplicación para cambiar la impresora predeterminada de
mi equipo. Tengo la mitad realizada donde se muestra un combobox con todas
las impresoras instaladas en el equipo. Ahora necesito que pulsando un botón
se ponga como predeterminada la impresora que hay seleccionada en la combo.
Pero no encuentra la forma de hacerlo.

Si alguien me puede echar una mano

Muchas Gracias.
Atentamente,
Montse.
 

Leer las respuestas

#1 SoftJaén
14/08/2006 - 18:04 | Informe spam
"Montse" escribió:

Necesito realizar una aplicación para cambiar la impresora
predeterminada de mi equipo.



Hola, Montse:

Si solamente deseas cambiar la impresora predeterminada de tu equipo, mejor
será que la establezcas directamente, a través del propio sistema operativo:
Panel de Control --> Impresoras y faxes. :-)

De todas formas, si deseas realizarlo mediante programación, me temo que vas
a tener que recurrir a la API de Windows, concretamente a la función
«SetDefaultPrinter», siempre y cuando tu sistema operativo sea Windows 2000
o superior.

En el enlace que te indico, encontrarás un ejemplo escrito en Visual Basic
6.0 para cambiar la impresora predeterminada. Lo único que tienes que hacer
es adaptarlo a Visual Basic .net.

SetDefaultPrinter: Changing Windows' Default Printer
http://vbnet.mvps.org/index.html?co...rinter.htm

Y si tu sistema operativo está basado en Windows 9x o Me, échale un vistazo
al siguiente artículo de la Base del Conocimiento (en inglés):

How To Set Which Printer Is the System Default Printer
http://support.microsoft.com/kb/266767/EN-US/

Por último te indico, que no hace falta cambiar la impresora por defecto
para imprimir un documento. Puedes recorrer la colección de impresoras
instaladas, e imprimir por la impresora que desees.

Como dices que en un control ComboBox muestras todas las impresoras
instaladas en el equipo, para imprimir por una impresora determinada,
ejecutarías lo siguiente:

Imports System.Drawing.Printing

Dim pd As New PrintDocument()

With pd.PrinterSettings
' Especifico el nombre de la impresora
' por donde deseo imprimir.
'
.PrinterName = ComboBox1.Text

' Establezco el número de copias que se imprimirán
.Copies = 2

' Rango de páginas que se imprimirán
.PrintRange = PrintRange.AllPages

If .IsValid Then
pd.Print()
Else
MessageBox.Show("La impresora no es válida.")
End If
End With

Un saludo


Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares