Newsgroup: it.comp.appl.access
Titolo: Cambiare la stampante predefinita

Ho bisogno di cambiare la stampante predefinita per creare file PDF con 
PdfCreator, con un MDE in A2000 ma che può girare anche su pc che hanno AXP 
o A2003. Dopo molte arrabbiature perché non sempre mi funzionava, sono 
giunto a questa conclusione:
- usando l'API SetDefaultPrinter o l'oggetto WScript.Network va benissimo 
con A2000 ma non con i successivi
- con AXP e A2003 l'unico modo per modificare temporaneamente la stampante 
predefinita è usare l'oggetto Printer (che non c'è in A2000)
A questo punto vi chiedo 2 cose:
- avete anche voi riscontrato questo problema?
- come si può risolvere senza dover preparare due MDE diversi a seconda 
della versione di Access installata?
-- 
Ciao, Sandrobi
-----------------
Se la tua email è fasulla, ti invito a leggere 
http://wiki.news.nic.it/AntiSpam
 

 ha scritto nel messaggio news:4514ca67$0$30243$4faf...@reader1.news.tin.it...

Script WSH/VBS che cambia la stampante predefinita ma devi sapere tu quale era quella originale per ripristinarla, dopo, allo stesso 
modo:
'---
Dim WshNet As Object
Set WshNet = CreateObject("Wscript.Network")
WshNet.SetDefaultPrinter "HP LaserJet 4100 PCL 6"
Set WshNet = Nothing
'---
Poi ci sarebbe anche il WMI 
(
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks__printers_and_printing.asp
) ma è limitato nei 
S.O.
Ciao.
-- 
Sergio MAZZA 

 ma è limitato nei S.O.
Proverò, ma temo che sia equivalente agli altri metodi.
Sandrobi 

 ha scritto nel messaggio 
news:45152f00$0$35068$4faf...@reader4.news.tin.it...

Funzionissima! Ha solo il "piccolo" difetto che funziona solo su WinXP e 
quindi siamo alle solite: è indipendente dalla versione di Access ma dipende 
molto dal S.O. (:-(
Sandrobi 

 Sandrobi
Il Sistema con le API funziona con A97....A2000...AXP e A2003, devi
avere qualche problema
tu.
WSH lo stesso, il problema può dipendere dalla versione di WIN più
che da quella di Office, ma da Win2000
non ci sono mai state differenze nè sulle chiamate API(almeno queste)
nè su WSH.
Ti consiglio di non fare ipotesi poco attendibili e trovare il vero
problema....!
@Alex

 Sandrobi
Intendi Lo script WSH/VBS o WMI?
Il primo dovrebbe funzionare da win2000 in poi e se non c'è il motore di scripting lo scarichi e installi: 
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/a7362f02-ea57-451e-8033-5c0c42a4ed02.asp
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:ef3kin$1vv$1...@area.cu.mi.it...

Forse hai perso l'ordine del discorso. L'ultima risposta riguarda WMI che 
funziona solo con WinXP. Invece l'API e lo script WSH a me non funzionano su 
A2003. 

 ha scritto nel messaggio 
news:1159024832.8...@i3g2000cwc.googlegroups.com...


 ha scritto nel messaggio 
news:1159024832.8...@i3g2000cwc.googlegroups.com...
Sandrobi ha scritto:




@Alex
---------------------
Non so perchè non funziona indentatura dei messaggio precedente, comunque:
Voglio essere smentito, ma come dicevo all'inizio del thread, io ho un MDE 
in A2000 con la funzione di cambio stampante di default per stampare su 
PdfCreator. Se questo MDE lo faccio girare con AXP o A2003 il report va a 
finire sempre su carta. Ho messo un Msgbox prima dell'openreport e risulta 
spuntata la stampate PdfCreator ma il report viene stampato su carta.
Non voglio fare ipotesi "pocco attendibili" ma per il momento questa è la 
mia ipotesi. L'API in effetti funziona, ma sui computer dove è installato 
AXP o A2003 sembra che al momento di stampare non si "accorga" che la 
stampante di default è cambiata. Non ditemi di far precedere l'OpenReport da 
DoEvents, Sleep o altro perchè già provato e addirittura, come dicevo, ho 
messo un MsgBox!
Quindi se il problema è diverso, dotemi qual'è.
Ciao
Sandrobi

 della versione di Access installata?
E' follia pura distribuire applicazioni basandosi sulle copie di Access
installate presso la clientela.
Hai bisogno della versione Developer con Runtime.
Ciao.


Sarebbe a dire?
Sandrobi 

 Sarebbe a dire?
Set Application.Printer=Nothing