Newsgroup: it.comp.lang.visual-basic
Titolo: Stampante ad aghi e porta USB

Salve, 
con un programma in BV6 devo inviare dei comandi a una stampante ad aghi tramite il
codice:
	Open "LPT1:" For Output As #1
 
	(codice di stampa)
 
	Close #1
Tutto ha funzionato bene su di un portatile che ha la porta parallela (appunto la LPT1).
Adesso pero' ho un portatile nuovo che non ha la porta parallela. Ho comprato un cavo
adattatore USB-Parallela, ma il computer considera la stampante collegata alla USB e la
porta parallela come inesistente. Conclusione: quando stampo da Word ecc. funziona, ma il
mio programma in VB6, quando arriva alla riga Open "LPT1:" For Output As #1 da' errore.
Qualcuno ha gia' avuto un problema simile?
Grazie
Giuliano

io ho risolto un problema analogo con la seguente istruzione, trovata
quà e la su internet:
net use lpt1: \\SN605411283238\Epson
dove:
SN605.... è il nome del mio pc
Epson è il nome della condivisione in rete della stampante
poi ha funzionato tutto.
sperando di essere stato di aiuto....

net use lpt1: \\SN605411283238\Epson
Ciao Ypsylon, ti ringrazio per l'indicazione, ma non capisco che linguaggio sia, e' Visual
Basic 6? 
Giuliano

Nel caso il problema non sia risolvibile con VB6, vi chiedo una seconda cosa: con VB 2005
(che ho acquistato ma mai aperto) il problema sarebbe risolvibile? Perche' nel caso me lo
studio e riscrivo il programma con il VB 2005.
Grazie
Giuliano

 Giuliano
si, è vb6, in un certo senso
E' però un comando dos che va lanciato con RunShell
Ti posto un po' di codice.
il comando lo eseguo con:
RunShell  "CMD /c net use lpt1: \\SN605411283238\Epson "
NB: nel modulo di inizio dichiaro:
' dichiarazioni per attesa completamento runshell
Private Declare Function OpenProcess Lib "kernel32" _
  (ByVal dwDesiredAccess As Long, _
   ByVal bInheritHandle As Long, _
   ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" _
  (ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _
  (ByVal hObject As Long) As Long
Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const STATUS_PENDING = &H103&
Ho poi definito una SUB:
Public Sub RunShell(cmdline As String)
    Dim hProcess As Long
    Dim ProcessId As Long
    Dim exitCode As Long
    ProcessId = Shell(cmdline, vbHide)
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False,
ProcessId)
    Do
        Call GetExitCodeProcess(hProcess, exitCode)
        DoEvents
    Loop While exitCode = STATUS_PENDING
    Call CloseHandle(hProcess)
End Sub
Spero di essere stato utile. comunque resto a disposizione.

 Qualcuno ha gia' avuto un problema simile?
Hai provato ad usare l'oggetto Printer?
In alternativa puoi scrivere su file e vedere se lanciando un comando del
genere funziona:
TYPE C:\stampa.txt >LPT1
COPY C:\stampa.txt & <Device>
Fai un file di testo e provi..

Epson è il nome della condivisione in rete della stampante
Ciao Yspylon, adesso mi e' tutto piu' chiaro (almeno spero).
Prima di provare mi manca una ultima (spero) domanda: dove lo trovo il nome del mio
leptop?
Giuliano

Epson è il nome della condivisione in rete della stampante
Dimenticavo!  Io non ho una rete, ma semplicemente un leptop e una stampante. Devo
prendere un router e crare una rete?
Giuliano


No credo sia obbligatorio avere una rete reale
Per il nome del pc:
risorse del computer - tasto destro  -proprietà - scheda nome computer
da vb6, avevo già un controllo winsock sul mio form, e il nome del mio
pc lo trovo in
nella proprietà localname (a memoria....)
resto a disposizione, e buon lavoro.

resto a disposizione, e buon lavoro.
ok, grazie della disponibilita' e per il codice!
Domenica ci metto le mani, se proprio non mi traggo d'impiccio da solo, approfittero'
ancora della tua gentilezza.
Giuliano

COPY C:\stampa.txt & <Device>
Non risolvo il problema, perche' devo stampare delle etichette per dei cartellini del
prezzo, e ho la necessita' che venga stampata ogni singola etichetta (e non una pagina
alla volta).  Comunque grazie!
Giuliano

 alla volta).  Comunque grazie!
sul sito comune
http://www.it-lang-vb.net/home.asp
c'e' un controllo apposta di marco corona. cerca "etichette".
hth, ciao, a.

 alla volta).  Comunque grazie!
Ah no? Sei proprio sicuro? ^_^
Che tipo di cartellini devi stampare? Che stampante è quella che stampa i
cartellini?
Io con metodi analoghi a quelli stampo tranquillamente su stampanti zebra
con etichette (addirittura qui volendo anche con word funziona), o
stampanti che vanno proprio su dei cartellini in continuo.
Se poi il problema è che non ti funziona con l'adattatore allora il
problema è un'altro, nel senso che non è vero che stampa una pagina alla
volta.

stampanti che vanno proprio su dei cartellini in continuo.
Io non sono un programmatore professionista, semplicemnte mi sono studiado il VB6 per fare
un programmino gestionale per il mio negozio.
Giuliano

c'e' un controllo apposta di marco corona. cerca "etichette".
E cosi' ho pure scoperto che esiste un sito :-)
Grazie

 un programmino gestionale per il mio negozio.
Bhe dovresti farlo funzionare in qualche modo. Prova i metodi che ti hanno
consigliato, e vedi un po'.
Alla peggio vedi se da Word funziona e in che modo. Al limite ti appoggi a
Word, ma non penso proprio ce ne sia necessità.