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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 DosFlores
14/08/2006 - 23:09 | Informe spam
Con esto que encontré por ahí lo puedes hacer.

Private Function SetDefPrinter(ByVal sNombreImpresora As String) As
Boolean
'Parámetro especifica nombre de impresora para poner por defecto.
'La pongo por defecto y la quito.

Dim WshNetwork As Object
Dim pd As New PrintDocument

WshNetwork = Microsoft.VisualBasic.CreateObject("WScript.Network")

Try
WshNetwork.SetDefaultPrinter(sNombreImpresora)
pd.PrinterSettings.PrinterName = sNombreImpresora
If pd.PrinterSettings.IsValid Then
Return True
Else
WshNetwork.SetDefaultPrinter(sNombreImpresora)
Return False
End If
Catch exptd As Exception
'WshNetwork.SetDefaultPrinter(sNombreImpresora)
Return False
Finally
WshNetwork = Nothing
pd = Nothing
End Try
End Function

Un saludo
Oscar Montesinos
Santa Pola (Alicante)
"SoftJaén" escribió en el mensaje
news:
"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.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida