Hola Matías !!!
Te envio este ejemplo en el cual se cambia el driver de una
impresora a un fax y luego vuelve a seleccionar la impresora
por default, creo que te servira igual para cambiar a otra
impresora, no lo he probado porque no tengo VB3, solo lo
copie de una revista, si tiene errores le hechas la culpa a
Edward Troxel que es el autor, si te funciona... ;-))
Saludos
jcollado@sistematica.com.ni
Managua, Nicaragua
Sub SetPrinters()
Dim Buffer as string, r as integer, i as integer
Dim pr as string, Buffer2 as string
Buffer = Space(8192)
r = GetProfileString("windows","device","", buffer,Len(buffer))
r = Instr(buffer,chr(0))
DefPrint = Left(buffer,r-1)
r = GetProfileString("PrinterPorts",ByVal 0&,"",buffer,len(buffer))
Do
r = Instr(buffer,chr(0))
If UCase(Left(buffer,3)) = "WIN" then
pr = Left(buffer,r-1)
buffer2 = Space(1024)
i = GetProfileString( "PrinterPorts", pr, "",buffer2,Len(buffer2))
i = InStr(buffer2,"," )
i = InStr(i+1,buffer2,",")
FaxPrint = pr & "," & Left(buffer2,i-1)
Exit Do
End If
buffer = Mid(buffer,r+1)
Loop While r > 0
End Sub
'Ahora que ya se conoce la impresora por default y
'el Fax driver lo unico que resta es cambiar a ese
'driver, para hacerlo sencillamente hay que cambiar
'el ini indicando el printer drive por default.
'Este codigo cambia el printer drive, imprime el
'reporte y vuelve al driver por default.
'Cambiar a fax
If fax Then
DeviceLine = FaxPrint
r = WriteProfileString("windows","Device",DeviceLine)
outto = 1
End If
'Imprimir el reporte
DoEvents
'Volver a la impresora por default
If fax Then
DeviceLine = DefPrint
r = WrteProfileString("windows","Device",DeviceLine)
End If
----------
From: Matiasbi[SMTP:matiasbi@mx3.redestb.es]
Sent: Monday, October 13, 1997 03:26 PM
To: vb-esp@ccc.uba.ar
Subject: (VB-ESP) IMPRESORA PREDETERMINADA
Me sería de gran ayuda alguna forma de solucionar el problema que tengo en
Visual Basic 3.0
Tengo que poner como predeterminada una u otra impresora de las dos que
tengo, pero no sé como, alguien sabe cómo cambiar la impresora
predeterminada de windows.
Repito, todo esto debe ser para VISUAL BASIC 3.0
Gracias, MATÍAS