PDA

Visualizza la versione completa : [VB6] PRINTER e stampante predefinita


rosamunda
10-12-2001, 11:25
L'oggetto Printer è utilizzabile solo con la stampante predefinita.

Per rendere predefinita la stampante è sufficiente nel Commondialog mettere la proprietà printerdefault = true

SE IO VOLESSI RIPRISTINARE LA STAMPANTE CHE ERA LA PREDEFINITA IN PRECEDENZA COSA DEVO FARE?

Non riesco a trovare niente ne sul manuale cartaceo ne su quello su cd-rom, se non un fantomatico riferimento a GDI (che in questo caso gestirebbe un handle della stampante senza il bisogno che sia la predefinita) ma io non so proprio da dove cominciare con questo GDI.

spero che riuscite ad aiutarmi!

Ciao.

vonkranz
10-12-2001, 14:17
Spero faccia al caso tuo.

Ti dimensioni una variabile con il livello di visibilita' che ti interessa.
Dim strOldNomePrinter
..................
[memorizzi la stampante in uso, suppongo che sia quella predefinita ovviamente se non e' stata cambiata da un altro programma]
strOldNomePrinter =printer.DeviceName
..................
nel corso del programma cambi la stampante
..................
[quando devi ripristinare quella in uso]
call Sub Ripristina_stampante(strOldNomePrinter)

Qui sotto hai la sub che reimposta la stampante
(a dire il vero ne puo' impostare una qualsiasi, ma visto che tu le passi il nome della periferica che utilizzavi PRIMA di modificarla, ecco che te la reimposta).


public Sub Ripristina_stampante(strNome as string)
Dim X As Printer
For Each X In Printers
If X.DeviceName = strNome Then
' Imposta la stampante come predefinita di sistema.
Set Printer = X
' Interrompe la ricerca di una stampante.
Exit For
End If
Next

Ciao.

rosamunda
10-12-2001, 15:11
Grazie, mi sei stato molto utile.

Aggiungo però che non si può più usare l'oggetto commondialog, poco male basta fare scegliere la stampante in un altro modo.

Ciao e grazie ancora, non sapevo proprio come cavarmela !
:D

ragno75
06-09-2002, 15:32
Spero faccia al caso tuo.
hai ragione il codice è giusto solo che così la ripristini solo per il continuare dell'applicazione, quando l'applicazione viene chiusa e tu vai vedere nella cartella delle stampanti di windows la predefinita è rimasta quella che tu hai cambiato dall'interno del programma o per lo meno su windows2000 fa così.

se poi mi dici che mi sbaglio e che probabilmente è un errore del mio sistema ti mi fai tutto contento specialmente se mi dici dov'è l'errore

Sky75
06-09-2002, 18:01
Vedo ke con le stampanti ve la cavate....forse riuscite a dare 1 mano anke a me, ora vi espongo il mio problema.
Devo fare 1 stampa 1 poco complessa. In pratica devo stampare 1 grafico. Tale grafico e' costituito sul form da delle labels sovrapposte di colori diversi. In pratica si vedono 2 barrette(sono le labels) di colori diversi 1 piu' lunga e l'altra piu' corta (in pratica corrispondono al valore piu' basso e piu' alto).
Di queste barrette sul form ce ne sono n..... quindi possono nn starci nella skermata. Quindi nn posso usare la PrintForm (peccato!!)
In 2 parole.....vorrei simulare la stampa di 1 label, usando io stesso il codice.
Uhhmmm........ temo di nn essere stato molto kiaro. Vedendo il form si capirebbe subito. Cmq se potete darmi qualke indicazione ve ne sarei grato.

PS. la proprieta' print dell'oggetto printer sarebbe comodo, ma....solo per del testo ed io, invece, devo stampare anke delle cose grafike, con colori ecc....... AIUTOOO!!! :cry:

rosamunda
07-09-2002, 22:08
Ciao sky,

non ho mai stampato grafici ma ho visto sul manuale in linea che si può fare. dall'indice cerca LINE e poi la sottovoce METODO. sembra che usando PRINTER.LINE puoi stampare rettangoli ed anche dargli un colore.
Mi sa che sarà un lavoraccio calcolarti tutte le posizioni e le proporzioni!
Buona faticata ...

Sky75
10-09-2002, 09:42
..... ma per mia fortuna ho risolto in 1 altro modo.
Ciclo su 1 file dove sono elencati i valori del grafico.
Con la load mi creo al volo gli oggetti ke desidero (le famigerate labels) e 1 form invisibile k epoi portero' in stampa proprio con la Printform. L'unico inconveniente e' ke devo gestirmi io il salto pagina. Be'.... bisogna pur sudarselo il pane no? Ehehehheh. Grazie comunque. Bacini sparsi

Loading