Impresora

Hola buenas tardes!
Soy Jesús
Quisiera saber si hay alguna forma de configurar desde visual basic una impresora como predeterminada.
Teniendo varias instaladas.
Saludos y gracias.

15 respuestas

Respuesta
1
En mi página tienes código de como hacerlo.
http://www.terra.es/personal2/sfortiz/
Respuesta
1
Con la propiedad DeviceName del objeto Printer puedes hacerlo. Ejemplo:
Printer.DeviceName = "\\Server\Impresora1"
Respuesta
1
No se exactamente si lo que quieres es imprimir directamente por una impresora especifica sin intervención del usuario, o simplemente quieres imprimir y poder seleccionar por que impresora quieres imprimir o si lo que quieres es cambiar la impresora por defecto de windows. Lo normal es, que a la hora de imprimir salga un cuadro de dialogo preguntando por que impresora imprimir, nº de copias etc. y para eso está el control commondialog. Para cambiar la impresora predeterminada de windows, la mejor manera es hacerlo directamente desde el propio windows que para eso esta (para que inventar la rueda si esta ya existe).
Si quieres ampliar la información, mira en la web de Guille, hay encontrarás bastante código sobre como imprimir desde VB(además de un montón de código sobre otras cosas).
Guille.costasol.net
Respuesta
1
Esto es factible realizarlo utilizando las API de Windows. Por si no lo sabes, las API son funciones propias de Windows que están contenidas en DLLs y puestas a disposición de cualquiera, es decir, que es factible utilizarlo desde 'cualquier' lenguaje de programación. Debes tener información de esto en la ayuda de Visual Basic (MSDN), además puedes encontrar mucha información de esto en Internet (aunque buena parte de ella sea en inglés). Bueno.
Respuesta
1
El siguiente código comprueba todas las impresoras disponibles para encontrar la primera impresora cuya orientación de página sea Vertical y después la establece como la impresora predeterminada:
Dim X As Printer
For Each X In Printers
If X.Orientation = vbPRORPortrait Then
' La define como predeterminada del sistema.
Set Printer = X
' Sale del bucle.
Exit For
End If
Next
Ejemplo sacado de MSDN
Respuesta
1
¡Uf! Hace tiempo que no toco este tema y no lo recuerdo muy bien. Busca ayuda sobre el objeto Printer. Creo que hay una colección Printers donde puedes buscar y cambiar la predeterminada. En principio, el objeto Printer actual apunta a la impresora predeterminada. Creo recordar que cambiando la propiedad Devicename cambiabas de impresora predeterminada. En cualquier caso sí que recuerdo bien que al reasignar una impresora como predeterminada desde VB, ésta permanecía como predeterminada tras cerrar la aplicación.
Respuesta
1
Bien! En código hay forma de hacerlo por supuesto... es la siguiente:
Printer (Objeto, colección Printers)
Sintaxis
Printer
Printers(índice)
El marcador de posición índice representa un entero entre 0 y Printers. Count-1.
La colección Printers le permite consultar las impresoras disponibles de forma que pueda especificar la impresora predeterminada de su aplicación. Por ejemplo, quizá quiera saber cuál de las impresoras disponibles usa un determinado controlador de impresoras. El siguiente código comprueba todas las impresoras disponibles para encontrar la primera impresora cuya orientación de página sea Vertical y después la establece como la impresora predeterminada:
Dim X As Printer
For Each X In Printers
If X.Orientation = vbPRORPortrait Then
' La define como predeterminada del sistema.
Set Printer = X
' Sale del bucle.
Exit For
End If
Next
Mediante la instrucción Set se designa una de las impresoras de la colección Printers como impresora predeterminada. El ejemplo anterior designa como impresora predeterminada de la aplicación la impresora identificada por la variable de objeto X.
Respuesta
1
Jesús, me imagino que lo que quieres es imprimir en una determinada impresora. No se como establecer una impresora como predeterminada para todos los programas en general. Pero si establecer una en concreto para tu aplicación. Te mando el código:
Dim X As Printer
For Each X In Printers
If X.Orientation = vbPRORPortrait Then
' Set printer as system default.
Set Printer = X
' Stop looking for a printer.
Exit For
End If
Next
Respuesta
1
Te sugiero estudira este ejemplo que te servirá.
Suerte
'**************
Type PRINTER_DEFAULTS
pDatatype As Long
pDevMode As Long
DesiredAccess As Long
End Type
Declare Function PrinterProperties Lib "winspool.drv" (ByVal hwnd As Long, ByVal hPrinter As Long) As Long
Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As Long) As Long
Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Y para acceder, por ejemplo, a la página de propiedades de la impresora por defecto :
Dim l As Long, hPrinter As Long
'abrimos la impresora por defecto para obtener un handle
l = OpenPrinter(Printer.DeviceName, hPrinter, 0&)
'sacamos la página de propiedades
l = PrinterProperties(Me.hwnd, hPrinter)
'cerramos la impresora
l = ClosePrinter(hPrinter)
Respuesta
1
Cargando el control
CommonDialog
Y asiciando a un botón la opción
ShowPrinter
Podrás cambiar la impresora predeterminada del sistema.
Respuesta
1
Si conoces el nombre de la impresora, creo que es bastante fácil:
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter "\\Servidor\NombreImpresora"
Lo he seacado de este KB de Microsoft, por si te sirve:
http://support.microsoft.com/default.aspx?scid=KB;EN-US;q263226&
Respuesta
1
En la rama
HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers
Default contiene el *nombre* de la impresora predeterminada, pero ignoro si el cambio es efectivo.
Suerte!
Respuesta
1
//pedro muller Copyright © 2002
'esta es una forma
Dim X As Printer
Private Sub Combo1_Click()
For Each X In Printers
If Combo1.Text = X.DeviceName Then
CommonDialog1.PrinterDefault = True
Printer.TrackDefault = True
Set Printer = X
MsgBox ("el impresor por defecto es:" & X.DeviceName)
End If
Next
End Sub
'Todas las selecciones que el usuario haga en la parte
'de configuración del cuadro de diálogo Imprimir
'(impresora, orientación, etc.) se usan para cambiar
'los valores de impresora en el registro de sistema.
'esta es otra forma
Private Sub Command1_Click()
'CommonDialog1.PrinterDefault = True
'CommonDialog1.ShowPrinter
Combo1.Clear
For Each X In Printers
'MsgBox (X.DeviceName)
Combo1.AddItem (X.DeviceName)
Next
End Sub
'tienes que usar
'combobox,boton,common dialog
Respuesta
1
Creo que esto te puede ayudar.
En la lista de componentes de visual existe uno que se llama
Microsoft Common Dialog, seleccionalo, luego lo arrastras al formulario desde donde quieres configurar tu impresora. Luego pones un botón en el formulario y pones el siguiente código:
Private Sub Command1_Click()
Me.CommonDialog1.Action = 5
End Sub
Ejecutalo, para que veas como trabaja, luego puedes usarlo como quieras.
Respuesta
1
Si se puede claro esta con el comando printer en vb6 siempre y cuando pongas el nombre de la impresora que quieras utilizar. El modo de ponerlo no lo se concretamnete pero eso sera fácil si buscas en internet.
Espero que por lo menos te sirva de algo mi respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas