Newsgroup: it.comp.lang.visual-basic
Titolo: Set Printer non funziona

Riporto testualmente la guida su prInter
L'oggetto Printer consente di comunicare con una stampante di sistema
(inizialmente la stampante di sistema predefinita).
L'insieme Printers consente di eseguire una query sulle stampanti
disponibili e quindi di impostare una stampante predefinita per
l'applicazione utilizzata.
Non ho capito che vuol dire "l'applicazione utilizzata" comunque!!!!!!!
Fatto sta che ho seguito una marea di indicazioni da Google ma
Set printer=X non funziona nè tantomeno Set printer=printers(n).
Solo usando commondialog e showprinter mi cambia la stampante.
Ma io devo poter cambiare la stampante predefinita senza commondialog.
Ho letto su google che l'unico modo sicuro è usare le api ma non saprei come
fare.
Ho scaricato pure una classe e un ocx ma entrambe non funzionano bene.
Come fate voi?

 Set printer=X non funziona nè tantomeno Set printer=printers(n).
http://www.google.it/groups?hl=it&lr=&selm=C3mo9.914%24%25M1.22951%40twister2.libero.it
hth
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 comunque!!!!!!!
[SNIP]
Immagino fosse un modo per dire che la modifica non influenza la stampante 
predefinita di sistema, ma solo quella utilizzata dal programma in 
questione.
Il seguente codice viene usato per dirottare una sola stampa specifica 
(etichetta barcode) su una stampante diversa da quella predefinita, senza 
nessuna interazione dell'utente.
Dim TestPrinter         As Printer
Dim BackupPrinterName   As String
'AltPrinterName e' una stringa con il DeviceName della stampante
'alternativa, scelto a monte, in fase di configurazione.
If StrComp(AltPrinterName, Printer.DeviceName, vbBinaryCompare) <> 0 Then
    'la stampante specificata non e' quella predefinita di sistema:
    'la cambiamo
    For Each TestPrinter In Printers
        If StrComp(AltPrinterName, TestPrinter.DeviceName _
         , vbBinaryCompare) = 0 Then
            'copiamo il DeviceName della stampante predefinita,
            'per ripristinarlo al termine della stampa con un
            'ciclo analogo a questo.
            BackupPrinterName = Printer.DeviceName
            Set Printer = TestPrinter
            Exit For
        End If
    Next
End If
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown 

 ha scritto nel messaggio
news:34kqqbF...@individual.net...

Io ho due stampanti una jet e una laser che ha due printer.scalewidth
diversi e due offset diversi.
Se  Set Printer = TestPrinter funzionasse e non funziona, le proprietà della
stampante (printer.scalewidth, gli offset  ecc) che ho selezionato
dovrebbero cambiare, ma non cambiano.
Carmelo

 ho selezionato dovrebbero cambiare, ma non cambiano.
Non so che dirti, tranne che quel codice, praticamente identico a come l'ho 
postato, nella nostra applicazione funziona perfettamente da almeno 1 
anno... due stampanti completamente diverse installate sul sistema, una 
tradizionale predefinita, una termica per etichette barcode: tutte le stampe 
del programma vanno su quella predefinita, un' unica funzione va su quella 
barcode senza alcuna finestra di dialogo e senza che le stampe successive 
vengano influenzate (nel senso che viene ripristinato correttamente 
l'oggetto Printer alla stampante normale)
Ovviamente tutto questo codice e' incapsulato in un unico componente (nel 
nostro caso una DLL ActiveX), dato che le modifiche all'oggetto Printer non 
vengono propagate a altri componenti OCX o DLL ActiveX o EXE ActiveX con cui 
eventualmente comunica il programma
