Newsgroup: it.comp.programmare.win32
Titolo: self service [2nd post]

La stampante di windows non è adatta ad un utilizzo non presidiato ed in un
chiosco self-service.
Qualcuno ha esperienze in merito o suggerimenti da darmi ?
E possibile evitare che le finestre di errore dello spooler ( fine carta, non in
linea ecc.) non appaiano all'utente ma possano essere gestite dall'applicativo ?
------------------------------------------
Formato del sesso inesatto
Tornare alla pagina precedente
ed immetterlo nuovamente.
(dalla pagina abbonamenti di tiscalinet..)


Se non ricordo male (e non posso verificare perchè non ho stampanti 
connesse al PC da cui ti scrivo) è possibile fare in modo che il sistema 
bypassi lo spooler e passi i dati direttamente al driver. 
Non sò se questo può risolvere il tuo problema (sicuramente rallenterà un 
po' l'applicazione...). 
Senza contare che alcune stampanti (Epson e HP a getto di inchiostro, ad 
esempio...) installano dei driver che svolgono anche (in parte) la funzione 
di spool e presentano messaggi di errore a video (pessima abitudine anche 
di molte altre componenti di win, purtroppo).
Una soluzione alternativa (soprattutto se l'output è limitato al testo) 
potrebbe essere quella di passare direttamente i dati alla stampante (come 
avveniva sotto DOS), senza la mediazione di un driver.
Questa soluzione è praticabile nel caso di output molto semplice 
(scontrini, ricevute), diventa parecchio complicata se devi stampare output 
grafico (e comunque vincolerebbe la tua soluzione a una specifica stampante 
o ti costringerebbe a realizzare dei driver "ad-hoc" per la tua 
applicazione).
Esiste poi una versione particolare di NT (NT Embedded) realizzata per 
lavorare in modalità unattended e che è al 100% compatibile con le API di 
NT. Potresti controllare se il suo sottosistema di stampa soddisfa la tua 
esigenza (sempre che tu possa decidere quale s.o. utilizzare sui 
client,ovviamente).
L'ultima (e più brutta...) alternativa potrebbe consistere nel cercare di 
intercettare le finestre di errore (tramite FindWindow e simili) e cercare 
di simulare i comandi che l'utente dovrebbe inviare manualmente per 
completare l'operazione. Questa soluzione è strettamente vincolata alla 
versione di S.O. che utilizzi (titolo delle dialog, id dei pulsanti, 
messaggi.. possono cambiare da un versione all'altra di Windows e tra le 
varie lingue) e quindi non troppo stabile (anche perchè potrebbe non 
essere possibile conoscere a priori tutti i messaggi generati dallo spooler 
e dal driver di stampa).
Potrebbero esserci anche altre soluzioni... ma io mi fermo qui.
Good luck! 
-- 
Valter Minute
min...@inwind.it
 (the reply address of this message is invalid)

On 30 Jun 2000 14:11:39 GMT, 
min...@inwind.it
 (Valter Minute) wrote:
Grazie di nuovo, rispondi solo tu nel ng?
---->Se non ricordo male (e non posso verificare perchè non ho stampanti 
---->connesse al PC da cui ti scrivo) è possibile fare in modo che il sistema 
---->bypassi lo spooler e passi i dati direttamente al driver. 
---->Non sò se questo può risolvere il tuo problema (sicuramente rallenterà un 
---->po' l'applicazione...). 
Hp scoperto che non e' il driver il problema, ma qualcosa di piu' profondo.
Il Language monitor credo..
---->Senza contare che alcune stampanti (Epson e HP a getto di inchiostro, ad 
---->esempio...) installano dei driver che svolgono anche (in parte) la funzione 
---->di spool e presentano messaggi di errore a video (pessima abitudine anche 
---->di molte altre componenti di win, purtroppo).
Lavoro con driver scritti appositamente per i chischi ed ho il supporto diretto
del produttore della stampante :-)))))))
---->Una soluzione alternativa (soprattutto se l'output è limitato al testo) 
---->potrebbe essere quella di passare direttamente i dati alla stampante (come 
---->avveniva sotto DOS), senza la mediazione di un driver.
---->Questa soluzione è praticabile nel caso di output molto semplice 
---->(scontrini, ricevute), diventa parecchio complicata se devi stampare output 
---->grafico (e comunque vincolerebbe la tua soluzione a una specifica stampante 
---->o ti costringerebbe a realizzare dei driver "ad-hoc" per la tua 
---->applicazione).
Tanta e solo grafica !!!!!
---->Esiste poi una versione particolare di NT (NT Embedded) realizzata per 
---->lavorare in modalità unattended e che è al 100% compatibile con le API di 
---->NT. Potresti controllare se il suo sottosistema di stampa soddisfa la tua 
---->esigenza (sempre che tu possa decidere quale s.o. utilizzare sui 
---->client,ovviamente).
Interessante, verifico subito.
---->L'ultima (e più brutta...) alternativa potrebbe consistere nel cercare di 
---->intercettare le finestre di errore (tramite FindWindow e simili) e cercare 
---->di simulare i comandi che l'utente dovrebbe inviare manualmente per 
---->completare l'operazione. Questa soluzione è strettamente vincolata alla 
---->versione di S.O. che utilizzi (titolo delle dialog, id dei pulsanti, 
---->messaggi.. possono cambiare da un versione all'altra di Windows e tra le 
---->varie lingue) e quindi non troppo stabile (anche perchè potrebbe non 
---->essere possibile conoscere a priori tutti i messaggi generati dallo spooler 
---->e dal driver di stampa).
Troppo esoterico..
Purtroppo il mio tempo sta scadendo, dovro' passare ad utilizzare la versione
seriale della stampante che mi permette un controllo a livello dell'applicativo
di tutto l 'I/O, 
con ripensamento di tutto il progetto :-((((((((((
Saluti, 
Giacomo

Giacomo


---->>
---->>Hp scoperto che non e' il driver il problema, ma qualcosa di piu'
---->>profondo. Il Language monitor credo..
---->>
---->
---->Per quel (pochissimo) che sò del Language monitor, mi pare di ricordare che 
---->funzioni solo se la stampante supporta una comunicazione bidirezionale 
---->(permette di interrogare lo stato e ritorna notifiche in caso di 
---->errori/problemi). Le stampanti che non supportano questo tipo di notifiche 
---->si limitano a passare in modalità off-line (non accettano più i dati in 
---->arrivo dal PC) e, trascorso un certo timeout viene visualizzato un 
---->messaggio di errore generico (visto che non è possibile capire se la 
---->stampante è stata spenta, scollegata, ha finito la carta, è stata distrutta 
---->durante un'invasione aliena...). Comunque il (famigerato) messaggio di 
---->errore a video dovrebbe essere generato dallo spooler.
---->
Insisto, ma solo per partito preso, i messaggi dello spooler si dovrebbero
acchiappare con la SetAbortProc(); gli amici che mi supportano dicono di aver
scritto dei language monitor per qualche cliente,
 ma non chiedere perche' per  me no.
---->
---->Una scommessa tra me e me... si tratta di chioschi per l'accesso a 
---->internet? :)
---->
Buca, deposito automatizzato assegni:
come una busta di carta col nome sopra, ma costa un sacco di piu' ;-))))))))
---->
---->Se non hai bisogno di una potenza di calcolo eccessiva e devi produrre 
---->parecchie unità, puoi considerare anche Windows CE.
---->
NT deve essere, e sia..
non e' proprio il mio lavoro, vengo dall'embedded.
Ok, per me il thread puo' finire, mi arrendo.
alla prossima!!


Nelle mie intenzioni "dovrebbe essere generato dallo spooler" voleva 
significare: "credo che il comportamento errato (segnalazione a video 
invece che notifica al programma) sia dovuto a un'errata implementazione 
dello spooler" e non "è giusto che lo spooler generi messaggi a video" :)
Mi scuso per l'esposizione poco chiara.
