Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Funzione Printform e l'intercettazione degli errori (vb)

Salve a tutto l'Ng,
ho un piccolo quesito da porvi.
Ho codificato un programma in Vb, tale programma prevede un'opzione che
permette di stampare le informazioni contenute nella form proprio come
appiaono a video. Per fare ciò utilizzo la funzione Me.Printform, ma se
nella routine in cui essa è inclusa si verifica un errore il vb non riesce
ad intercettarlo ( strano ma mi succede proprio questo ). La mia domanda è :
comne posso fare per intercettare gli errori utilizzando tale funzione ?
Ps : Io avrei pensato ad un'API che controlla se la stampante è attiva, ma
nonostante varie ricerche non ne sono venuto a capo.
Grazie x l'aiuto =)

nonostante varie ricerche non ne sono venuto a capo.
Una soluzione tipo questa ti ripara da parecchi inconvenienti, tipo
stampante non installata, servizio di spooling non attivo, stampante
spenta o non raggiungibile...
Private Declare Function OpenPrinter Lib "winspool.drv" Alias
"OpenPrinterA" ( _
                    ByVal pPrinterName As String, ByRef phPrinter As
Long, _
                    ByRef pDefault As Any) As Long
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal
hPrinter As Long) As Long
Private Function PrinterInstalled() As Boolean
    Dim hPrinter As Long
    If (Printers.Count = 0) Then Exit Function
    If (OpenPrinter(Printer.DeviceName, hPrinter, ByVal pNULL)) Then
        ClosePrinter (hPrinter)
        PrinterInstalled = True
    End If
End Function    '// PrinterInstalled
-- 
ciao, hal

Grazie mille Hal =)

 spenta o non raggiungibile...
Hal, scusa se mi intrometto, ma la cosa interessava anche a me
(
http://makeashorterlink.com/?O21022E14
) e ho provato il tuo codice (ho
dovuto, aiutandomi con API-Guide, cambiare quel pNULL in 0&), ma mi dice che
la stampante (una stampante di rete dichiarata come predefinita da pannello
di controllo, con la rete _scollegata_) è installata
(PrinterInstalled=True). Non ho capito come usarla, ma a me interessava una
fuanzione che mi dica se una stampante (dicamo pure la predefinita=Printer)
è fisicamente disponibile/agganciata in _quel momento_, lasciamo pur stare
(ma sarebbe l'ideale) che sia spenta o meno...

(ma sarebbe l'ideale) che sia spenta o meno...
Se stacchi il cavo dalla parallela, che cosa ritorna la funzione?
-- 
ciao, hal

*hal1961* ha scritto:

Non ho alcuna stampante attaccata alla parallela. La spina è ancora ...
vergine.
Parlavo di una stampante di rete, fisicamente collegata alla parallela di un
altro PC che funge da server per quelli da cui eseguo le istruzioni.
Ahhh, forse intendevi la parallela della macchina cui è collegata la
stampante...
Domani mattina provo e farò sapere.
Ma, comunque vada, sarei daccapo, perchè quella stampante non la vorrei
vedere proprio se non sono in rete...



Continuo a non capire... se la stampante non e' raggiungibile
OpenPrinter restituisce zero.
Non ti basta?
-- 
ciao, hal

 Non ti basta?
Mi basterebbe, eccome. Ma NON mi restituisce 0...
Stamane ho provato sia a spegnere fisicamente la stampante che a staccare il
cavo di rete, quindi isolando il PC dal quale eseguivo il codice, dal PC cui
è attaccata la stampante. Ho anche provato, in tali condizioni (ovvero col
cavo staccato) a riavviare la macchina.
Ho provato anche adesso, da questo portatile. Sto a casa, a 5 Km
dall'ufficio dove sta fisicamente l'attuale stampante predefinita su
_questo_ portatile. L'unico cavo attaccato è il cavo del modem per internet.
La OpenPrinter non mi restituisce MAI 0, quindi la funzione rende sempre
True.

 True.
Ah, forse qui sta l'inghippo: XP Pro. Domani proverň con W98



Argh... su windows 2000 mi funziona come deve, vuoi dire che per xp
occorre un altro escamotage?
Ma porc...
-- 
ciao, hal

 ha scritto

ho aperto impostazioni | stampanti.
mi ha dato
- pronte l'epson collegata al desktop di casa e la hp lj piccola su lpt1
dell'ufficio - che ovviamente non c'e'.
- non pronte le la lj bn e la dj colori di rete dell'ufficio.
non e' che la tua e' mappata sulla lpt ?
ciao

 non e' che la tua e' mappata sulla lpt ?
No. Se per mappata intendi la porta, è su \\Nome_PC_Server\Nome_Stampante

*Lupo* ha scritto:

Non va nemmeno con Win98SE.
Sia con stampante spenta che con cavo scollegato dalla porta parallela...

 Sia con stampante spenta che con cavo scollegato dalla porta parallela...
Butto lì un'intuizione: una volta che hai i driver sulla macchina
locale, per Win avere "la stampante pronta" significa avere tutto
il necessario per creare un file di stampa, da mandare poi allo
spooler. Sarà poi lo spooler a preoccuparsi di inviare questo file
temporaneo alla stampante, attraverso uno di una mezza
dozzina di metodi possibili: parallela, seriale (esistono ancora !),
tramite un ftp, o un servizio lpd, lpr, smb o ptflbgmstrvnss ;-)
che sia. Per lo meno a me :-) e parlo di questa macchina, con
W95, il sistema permette di stampare tranquillamente (beh,
un errore lo dà, ma è di sistema, non di VB) su una stampante
scollegata o settata come non in linea, e il lavoro viene messo
nella coda di stampa. I file fisicamente dovrebbero finire in
%windows%\spool\printer in w95, oppure in %system32%\spool\printer
se è un sistema di classe NT, e c'è uno .SPL e uno .SHD per
ogni lavoro.
Quindi, se la stampa avviene attraverso lo spooler, forse
bisognerebbe chiedere a lui se è in grado di collegarsi alla
stampante. Aspe'...
/me fruga frettolosamente su MSDN
Una GetPrinter con PRINTER_INFO_2 *potrebbe* servire a
qualcosa, ma è un'idea che butto lì e nascondo la mano, non
ho tempo nè possibilità, nè soprattutto capacità :-) di fare
delle prove.
Bye, G.

 delle prove.
Proverò. Grazie.
PS: Io non ho le catene in macchina. Capito che io non le ho???!!! Quindi,
fuori te e Gigio a spalare!
Seriamente: In che condizioni stanno le strade? Ho sentito che mettono
precipitazioni anche per il week-end.
 :-(

  :-(
Stamane era chiusa un pezzo di A14 ma solo per ripulirla , da quel che ne so
dal pomeriggio di oggi e' tutto normale, dai siamo al livello del mare non
dovrebbero esserci problemi di viabilita' ne in Treno ne in auto (A14) per
la A24 e A25, oltre al maltempo perenne che ci trovo sempre, mi riservo il
diritto di tacere !
-- 
< un IsoGigio2KRadio di passaggio che non spala, ricordi? Non siamo cosi
importanti da spalare :p >
Sito Comune
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

  :-(
Fra ieri sera e la notte ha fatto un palmo di neve e -5 gradi.
Stamattina ancora neve, ma col sole... =8-O
Oggi pomeriggio c'era un cielo limpido, col sole e 13 gradi.
Che t'aggia di' ? Io rinuncio a fare previsioni...
Un Paperino che non ci sono più le mezze stagioni...