Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] impostare stampante di default

Salve a tutti,
mi sto perdendo su come impostare la stampante di default da codice... 
praticamente, dovendo stampare su 2 stampanti da outlook a seconda del 
mittente della mail, devo impostare di volta in volta la stampante di 
default. Purtroppo pero' il codice che trovo su internet non funziona, in 
particolare questo:
        Dim Prt As Printer
        For Each Prt In Printers
            If Prt.DeviceName = NomeStampante Then
                Set Printer = Prt
            Exit For
            End If
        Next
mi permette dalle altre applicazioni di stampare nella stampante scelta, ma 
non da outlook (in realtà non imposta la stampante di default)
Ma come cavolo faccio a cambiare la stampante di default?
Grazie 1000,
A. 

 Ma come cavolo faccio a cambiare la stampante di default?
Io mi son fatto questo modulo per leggere/scrivere la stampante
predefinita. Esempio lo uso per leggere la predefinita, imposto quella PDF,
e poi rimetto quella predefinita che c'era.
| Option Explicit
| 
| Private Declare Function WriteProfileString Lib "kernel32.dll" _
|     Alias "WriteProfileStringA" (ByVal lpszSection As String, _
|     ByVal lpszKeyName As String, ByVal lpszString As String) As Long
| Private Declare Function SendNotifyMessage Lib "user32" _
|     Alias "SendNotifyMessageA" (ByVal hWnd As Long, _
|     ByVal msg As Long, ByVal wParam As Long, _
|     ByVal lParam As Long) As Long
| Private Declare Function SetDefaultPrinter Lib "winspool.drv" _
|     Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Boolean
| 
| Private Const WM_SETTINGCHANGE = &H1A
| Private Const HWND_BROADCAST = &HFFFF&
| 
| 
| 
| Public Function ImpostaStampante(nomeSTAMPANTE As String) As Boolean
| 
|     Dim l As Integer, a As String
|     Dim Ret As Long
| 
| On Error GoTo ImpostaStampante_Error
| 
|     ImpostaStampante = False
|       
|     For l = 0 To Printers.Count - 1
|         a = Printers(l).DeviceName
|         If UCase(nomeSTAMPANTE) = UCase(a) Then
|             Set Printer = Printers(l)
|             Ret = WriteProfileString("Windows", "Device", _
|                         nomeSTAMPANTE)
|             SetDefaultPrinter nomeSTAMPANTE & Chr(0)
|             Ret = SendNotifyMessage(HWND_BROADCAST, _
|                         WM_SETTINGCHANGE, 0, 0)
|             ImpostaStampante = True
|             Exit For
|         End If
|     Next l
| 
|   On Error GoTo 0
|   Exit Function
| 
| ImpostaStampante_Error:
| 
|   MsgBox "Error " & Err.number & " (" & Err.Description & ") in procedura ImpostaStampante di Modulo Stampanti"
| 
| End Function
| 
| Public Function LeggiStampantePredefinita() As String
| '
| On Error GoTo LeggiStampantePredefinita_Error
| 
|   LeggiStampantePredefinita = Printer.DeviceName
| 
|   On Error GoTo 0
|   Exit Function
| 
| LeggiStampantePredefinita_Error:
| 
|   MsgBox "Error " & Err.number & " (" & Err.Description & ") in procedura LeggiStampantePredefinita di Modulo Stampanti"
| End Function

"Andrea [Work]" <andrea.isw...@gmail.invalid> ha scritto nel 
messaggio news:1s7m84d8anixh$.1ubq5cxn6y4o.dlg@40tude.net...

La provo subito, Grazie 1000!!
A. 


Public Function ImpostaStampante(nomeSTAMPANTE As String) As Boolean
mi ricorda qualcosa...
-- 
-> GbC|
www.gbcweb.com
www.chiappori.com
 

 mi ricorda qualcosa...
Era codice tuo? :P
Si deriva da dei copia incolla o richieste fatte qui :)
Infatti non è un naming che utilizzo personalmente.
Avrei dovuto dire che ho "assemblato" questo modulo.


Lo avevo postato tempo fa...
Ma non ti preoccupare che la paternità di quel codice non la reclamero' 
:D
