PDA

Visualizza la versione completa : [VB] Intercettare la stampante selezionata


ladyBlu
19-07-2002, 15:37
Salve ragazzi.

Vorrei riuscire ad intercettare la stampante selezionata dall'utente nella CommonDialog e passargli poi il form da stampare.
Riesco ad aprire la finestra di dialogo, ma non riesco a intercettare la stampante scelta.

E una volta intercettata questa stampante, come faccio a mandare in stampa il form?

Vi ringrazio

:ciauz:

verodami
19-07-2002, 16:23
Aspetta Lady .. credo di aver gi fatto una cosa del genere ....

xit
19-07-2002, 16:33
Potrebbe essere questo!?

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

verodami
19-07-2002, 16:36
All' interno del tuo form ..creati non s ..un commandbutton ... per selezionare la tua stampante
all Click del bottone "Seleziona Stampante" ..scrivi:

CommonDialog.PrinterDefault = True
CommonDialog.ShowPrinter
ceprinte = True
Set siprinte = Printer
Unload Me

Ma tu all' interno del form l' hai inserito il commandDialog???
Poi per passargli il form da stampare ..non saprei ... non basta il comando printer
da associare al form stesso?oppure dato che all' interno del commanbutton "seleziona Stampante" abbiamo
utilizzato un variabilr booleana ...se ceprint = true ..mi mandi in stampa il form altrimenti no..
non s ..sono stata chiara ..altrimenti dimmi pure
ciao amichetta :)

verodami
19-07-2002, 17:03
All' interno del tuo form ..creati non s ..un commandbutton ... per selezionare la tua stampante
all Click del bottone "Seleziona Stampante" ..scrivi:

CommonDialog.PrinterDefault = True
CommonDialog.ShowPrinter
ceprinte = True
Set siprinte = Printer
Unload Me

Ma tu all' interno del form l' hai inserito il commandDialog???
Poi per passargli il form da stampare ..non saprei ... non basta il comando printer
da associare al form stesso?oppure dato che all' interno del commanbutton "seleziona Stampante" if ceprint = true ..mi mandi in stampa il form altrimenti no..
non s ..sono stata chiara ..altrimenti dimmi pure
ciao amichetta :)

ladyBlu
19-07-2002, 17:20
grazie vero, ma ho trovato delle api di windows che dovrebbero bastarmi. almeno spero.
:ciauz:

ladyBlu
19-07-2002, 18:03
qualcuno conosce delle api di windows che mi permettano di consentire all'utente di selezionare una stampante tra quelle presenti nel sistema e poi stampare con questa stampante il form attualmente visualizzato?
vi prego datemi una mano, urgente.
:stordita:

vonkranz
19-07-2002, 19:05
Innanzitutto io lascerei tranquilline le API di Win per una cosa cosi' semplice, 1 perche' diminuisci la portabilita' del codice, 2 perche' quando hai a che fare con le API le cose diventano sempre + complicate....

Cmq, veniamo a noi:

Se proprio non vuoi utilizzare la CommonDialog di stampa, puoi fare in questo modo:

-puoi prendere il codice che ti ha postato xit (che tra le altre cose mi pare di conoscerlo :stordita: );
-lo modifichi in modo tale che ti riempia una lista con il nome delle stampanti che ci sono sul sistema;
-quando la personcina che utilizza il tuo prg. clicca su una stampante, ti leggi il nome e, sempre con il codice postato da xit imposti la stampante (magari prima ti memorizzi il nome della stampante attualmente in uso, questo perche' e' buona norma che un prg. lasci le cose come le ha trovate al momento del lancio dopo la chiusura)

Ti piacerebbe che ti facessi un esempio eh?, ma visto che in questo momento mi sento V.b.I, te lo faccio (se ne avrai ancora bisogno) quando avrai letto questo post.... e poi, probabilmente ci riesci da sola ;) (tra l'altro da anche + soddisfazione).

ladyBlu
22-07-2002, 09:20
Buongiorno.
allora, io vi ringrazio intanto per l'aiuto.
c' un problema, forse non mi sono spiegata bene: io voglio usare la CommonDialog per visualizzare l'elenco delle stampanti presenti nel sistema, solo che prima di stampare devo passare all'oggetto Printer le dimensioni del form, per questo volevo intercettare il nome della stampante selezionata.
Purtroppo la cosa si complica perch a seconda della risoluzione del monitor, il form viene stampato su A4 pi grande o pi piccolo, mentre io lo voglio sempre a tutto foglio.

come faccio a mantenere le dimensioni di stampa sempre uguali per un A4?

vonkranz
22-07-2002, 09:35
Originariamente inviato da ladyBlu
Buongiorno.....
come faccio a mantenere le dimensioni di stampa sempre uguali per un A4?
...
Buongiorno.
Cosi' imposti le dimensioni del foglio di stampa su un A4


Printer.PaperSize = vbPRPSA4

Loading