• Jueves 14 de Noviembre de 2024, 16:59

Autor Tema:  Impresoras En Combobox  (Leído 2284 veces)

erick185

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Impresoras En Combobox
« en: Martes 28 de Marzo de 2006, 06:53 »
0
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

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Impresoras En Combobox
« Respuesta #1 en: Martes 28 de Marzo de 2006, 13:26 »
0
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.

tiquinho

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re: Impresoras En Combobox
« Respuesta #2 en: Martes 28 de Marzo de 2006, 13:27 »
0
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:

Makko

  • Miembro MUY activo
  • ***
  • Mensajes: 117
    • Ver Perfil
Re: Impresoras En Combobox
« Respuesta #3 en: Miércoles 29 de Marzo de 2006, 00:36 »
0
Este Tema me vino al pelo, yo tb andaba buscando algo asi.
Gracias.!
Saludos.
Makko.

My life is a simple thing that would interest no one. It is a known fact that I was born and that is all that is necessary.

erick185

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Impresoras En Combobox
« Respuesta #4 en: Miércoles 29 de Marzo de 2006, 03:09 »
0
Hola

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

Salu2