Ik ben bezig met een applicatie in VB6. Het gaat allemaal goed totdat ik
een label printer (Avert 64-05) moest gaan aansturen via winsock.
Het eerste wat ik gedaan heb is een klein testprogramma gemaakt die via winsock
wat data verstuurt (de string met daarin het label formaat). Tevens ook een string
die aangeeft dat de printer zijn status moet retourneren. Deze bevat dan bijvoorbeeld
een nummer dat overeenkomt met een bepaalde error.
Ik had een losse connect knop met deze simpele code erin
Vervolgens had ik twee lossen knoppen om een barcode te printen of om de status op te vragen
Dit functioneerde perfect en alle data kwam netjes binnen.
Nu wilde ik dat bij het drukken op de knop hij zelf ging kijken of hij al verbonden was. Dat
ik dus niet meer zelf los op de connect knop moest drukken. Eerst had ik de code van de connect knop even tijdelijk boven de andere bestaande code van de knoppen gezet. Helaas kreeg ik hier een hele nare foutmelding
Ik ben toen gaan zoeken op internet en kwam heel veel resultaten tegen, behalve DE oplossing. Op sommigen plekken uit 2003 las ik iets over een fout in het winsock component. Ik heb nergens hier echt een duidelijk antwoord over gelezen. Ik heb overigens het laatste servicepack van Visual Studio, namelijk 6. Hierin zit ook een aangepaste versie van het winsock component. Ik ga er dus vanuit dat als er in 2003 een fout gevonden was dat die wel meegenomen zou zijn in het servicepack dat nu een paar maanden oud is. Ik heb later nog een keer een andere mswinsck.ocx gedownload en die geprobeerd maar dat mocht niets helpen.
Ondertussen ben ik na 2 dagen prutsen niets verder gekomen. Behalve dat het testprogramma nu hemaal niets meer wilt doen. Ook niet als ik een losse connect en opdracht geef. Ik krijg nu altijd die nare 40006 error.
Heeft iemand een idee, ik weet echt niet meer hoe dit op te lossen. Als ik meer data moet geven, geef het dan even aan.
Btw printen via de Printer.print manier is geen optie. De applicatie moet supersnel barcodes gaan printen en die windows spooler vertraagt al een afdrukt minimaal 1 seconden.
een label printer (Avert 64-05) moest gaan aansturen via winsock.
Het eerste wat ik gedaan heb is een klein testprogramma gemaakt die via winsock
wat data verstuurt (de string met daarin het label formaat). Tevens ook een string
die aangeeft dat de printer zijn status moet retourneren. Deze bevat dan bijvoorbeeld
een nummer dat overeenkomt met een bepaalde error.
Ik had een losse connect knop met deze simpele code erin
code:
1
2
3
4
5
6
7
| With Winsock1
If .State <> sckClosed Then .Close
.Connect
If .State = sckClosed Then
MsgBox "Niet gelukt om verbinding te maken"
End If
End With |
Vervolgens had ik twee lossen knoppen om een barcode te printen of om de status op te vragen
code:
1
| Winsock1.SendData "#!A1#!X0" |
Dit functioneerde perfect en alle data kwam netjes binnen.
Nu wilde ik dat bij het drukken op de knop hij zelf ging kijken of hij al verbonden was. Dat
ik dus niet meer zelf los op de connect knop moest drukken. Eerst had ik de code van de connect knop even tijdelijk boven de andere bestaande code van de knoppen gezet. Helaas kreeg ik hier een hele nare foutmelding
code:
1
| runtime error '40006': wrong protocol connection state for the requested transaction or request |
Ik ben toen gaan zoeken op internet en kwam heel veel resultaten tegen, behalve DE oplossing. Op sommigen plekken uit 2003 las ik iets over een fout in het winsock component. Ik heb nergens hier echt een duidelijk antwoord over gelezen. Ik heb overigens het laatste servicepack van Visual Studio, namelijk 6. Hierin zit ook een aangepaste versie van het winsock component. Ik ga er dus vanuit dat als er in 2003 een fout gevonden was dat die wel meegenomen zou zijn in het servicepack dat nu een paar maanden oud is. Ik heb later nog een keer een andere mswinsck.ocx gedownload en die geprobeerd maar dat mocht niets helpen.
Ondertussen ben ik na 2 dagen prutsen niets verder gekomen. Behalve dat het testprogramma nu hemaal niets meer wilt doen. Ook niet als ik een losse connect en opdracht geef. Ik krijg nu altijd die nare 40006 error.
Heeft iemand een idee, ik weet echt niet meer hoe dit op te lossen. Als ik meer data moet geven, geef het dan even aan.
Btw printen via de Printer.print manier is geen optie. De applicatie moet supersnel barcodes gaan printen en die windows spooler vertraagt al een afdrukt minimaal 1 seconden.