SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: erick185 en Martes 28 de Marzo de 2006, 06:53

Título: Impresoras En Combobox
Publicado por: erick185 en Martes 28 de Marzo de 2006, 06:53
Hola

Es posible meter las impresoras instaladas en un combobox, para que se pueda elegir en cual imprimir, si se puede hacer..!

 Espero que me ayuden.

Gracias de antemano.


Salu2
Título: Re: Impresoras En Combobox
Publicado por: ebolo en Martes 28 de Marzo de 2006, 13:26
Hola Erick185, es algo tan sencillo como esto:

Código: Text
  1.  
  2. Private Sub Form Load()
  3.  Dim ctl As Printer
  4.  For Each ctl In Printers
  5.      Me.Combo3.AddItem ctl.DeviceName
  6.  Next
  7.  Set ctl = Nothing
  8. End sub
  9.  
  10. Private Sub Combo3_Click()  'Elegimos impresora
  11.     SetDefaultPrinter (Me.Combo3.List(Me.Combo3.ListIndex))
  12. End Sub
  13.  
  14.  

En un módulo pones:
Código: Text
  1.  
  2. Function SetDefaultPrinter(PrinterName As String) As Boolean
  3. Dim wshNetwork As Object ' New wshNetwork
  4.    On Error GoTo err_SetDefaultPrinter
  5.    Set wshNetwork = CreateObject("WScript.Network")
  6.    wshNetwork.SetDefaultPrinter PrinterName
  7.    Set wshNetwork = Nothing
  8.    SetDefaultPrinter = True
  9. err_SetDefaultPrinter:
  10. End Function
  11.  
  12.  

Para saber que Impresora tienes por defecto, puedes usar esta función:
Código: Text
  1.  
  2. Function GetDefaultPrinter() As String
  3. Dim strDefault As String
  4. Dim lngbuf As Long
  5.     strDefault = String(255, Chr(0))
  6.     lngbuf = GetProfileString("Windows", "Device", "", strDefault, Len(strDefault))
  7.     If lngbuf > 0 Then
  8.        GetDefaultPrinter = Left$(strDefault, InStr(strDefault, ",") - 1)
  9.     Else
  10.        GetDefaultPrinter = ""
  11.     End If
  12. End Function
  13.  
  14.  

Un saludo.
Título: Re: Impresoras En Combobox
Publicado por: tiquinho en Martes 28 de Marzo de 2006, 13:27
Claro que es posible
Código: Text
  1. Dim auxImpresora As Printer
  2.  
  3. cbxImpresoras.Clear
  4. For Each auxImpresora In Printers
  5.       cbxImpresoras.AddItem auxImpresora.DeviceName
  6. Next
  7.  
  8.  
Ya está. Despues de esto tendrás los nombres de las impresoras en el combo.

En la colección Printers están todas las impresoras de Windows, con sus propiedades y su mundo particular. Utiliza el ItemData del ComboBox para guardar lo que te interese.

Espero que te sirva,

Un saludo  :hola:

PD:Qué lento estoy escribiendo, te me has adelantado ebolo :smartass:
Título: Re: Impresoras En Combobox
Publicado por: Makko en Miércoles 29 de Marzo de 2006, 00:36
Este Tema me vino al pelo, yo tb andaba buscando algo asi.
Gracias.!
Título: Re: Impresoras En Combobox
Publicado por: erick185 en Miércoles 29 de Marzo de 2006, 03:09
Hola

Gracias a to2 por su ayuda, son muy buenos, de antemano gracias.

Salu2