Hallo Allerseits, ich hab hier Windows XP mit einem nicht ganz taufrischen Visual Basic 6.0. Naja, ist halt so. Ich will mit dem seriellen Port kommunizieren, dazu nutze ich XMCommCRC, die frei Version von MSComm32. Geht aber NICHT! Ich kann keinen von COM1-COM16 öffnen. Im System hab ich einen virtuellen COM-Port von einem FT232. Normale Terminalprogramme laufen problemlos! Was ist das faul? MFG Falk
Dein hier nicht geposteter Quelltext enthält in Zeile 42 einen Zuweisungsfehler.
>dazu nutze ich XMCommCRC, die frei Version von MSComm32.
Den Quatsch brauchst Du nicht! Öffne einfach eine Datei mit dem Namen
"Com1", "Com2", "Com3", "LPT1" etc. mittels dem OPEN #xy Kommando (am
besten Binary Read_Write) dann lese+schreibe auf diese Datei... That's
it!
Moin Falk, was spricht gegen mscomm32? Damit habe ich eigentlich kein Problem. Gruß Einhart
Falk Brunner schrieb: > Was ist das faul? Faul ist das Du keine Fehlermeldung(Fehlernummer) und kein Quelltext zeigst. Möchtest du hier ein Ratequiz eröffnen?
@ Einhart Pape (einhart) >was spricht gegen mscomm32? Die Tatsache, dass weiß der Geier warum die in meinem Visual Basic nicht drin war. Und wenn man eine aus dem Internet runterlädt und nutzen will, meckert es wegen angeblich nicht vorhandender Lizenzen rum. Da soll es wohl auf diversen neueren Developer CDs eine .reg Datei geben, die das per Registry Einträgen patcht. Hab ich aber nicht, auch nicht gefunden, weil wohl offiziell nicht frei verfügbar. @ Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite >Dein hier nicht geposteter Quelltext enthält in Zeile 42 einen >Zuweisungsfehler. Jaja ;-) Ich hab das Beispiel von einer Seite genommen, das COM1-16 abklappert. Immer ist ERROR <>0 :-( http://www.activevb.de/tutorials/tut_com/com.html @ Peter (Gast) >>dazu nutze ich XMCommCRC, die frei Version von MSComm32. >Den Quatsch brauchst Du nicht! Öffne einfach eine Datei mit dem Namen >"Com1", "Com2", "Com3", "LPT1" etc. mittels dem OPEN #xy Kommando (am >besten Binary Read_Write) dann lese+schreibe auf diese Datei... That's >it! Soll mir recht sein, wenn das auch geht. Hast du ein Beispiel dafür, man muss ja auch die Baudrate etc. einstellen. MFG Falk
Das mit dem gelegentlichen Lizengemecker hatte ich auch bei einigen Rechnern. Die .reg-Datei hat dann geholfen. Gruß Einhart
@ Einhart Pape (einhart) >Das mit dem gelegentlichen Lizengemecker hatte ich auch bei einigen >Rechnern. Die .reg-Datei hat dann geholfen. Hab ich aber nicht, auf der CD ist sie nicht. Ist ne aaalte VB6.0.
Also, ich hab mal probiert. Wenn man den COM Port als Datei per Open öffnet kann man schreiben. Allerdings scheint es nicht möglich zu sein, dabei die Einstellungen zu ändern, ala Open "COM4,9600,N,8,1" Hat nicht funktioniert, es wird nur die im Windows vereinbahrte Standardeinstellung genutzt. Oder kennt jemand die richtige Syntax? Der zweite Versuch mit der originalen MSComm ging soweit, als dass mir ein Vögelchen ein Liedchen gezwitschert hat, worauf die bösen Lizensgeister verschwunden sind. Dennoch ist ein COM-Port Zugriff immer noch nicht möglich, genauso wie mit dem XMCommCRC. :-( Was kann Visual Baisc daran hindern? Zugriffsrechte unter XP? Mein User-Account ist eingeschränkt, aber auch mit Adminrechten geht es nicht. Firewall? Glaub ich nicht am COM-Port. Virenscanner? Avira? Hmm? MSComm inkompatibel mit virtuellen UARTs bzw. deren Treibern? Was sonst? MFG Falk
Hallo Falk, ich hatte dir heute morgen eine Mail mit einem Codebeispiel geschickt. Dein Code mit if Error ... funktioniert bei mir auch nicht. Gruß Einhart
@ All Hier des Rätsels Lösung. Mein Quelltext ist der, "eigentlich" aus einem Tutorial kopiert.
1 | Private Sub CONNECT_Click() |
2 | Dim i As Integer |
3 | 'If CONNECT.Caption = "&Connect" Then |
4 | 'MSComm1.CommPort = COM_SEL.ListIndex + 1 |
5 | For i = 1 To 16 |
6 | MSComm1.CommPort = i |
7 | On Error Resume Next |
8 | MSComm1.PortOpen = True ' Port oeffnen, ohne Abbruch bei Fehler |
9 | If Error = 0 Then ' Port available |
10 | CONNECT.Caption = "&Disconnect" |
11 | COM_SEL.Enabled = False ' |
12 | MsgBox "COM " + Str(i) + " available!" |
13 | Else |
14 | MsgBox "COM " + Str(i) + " not available! Error code" |
15 | End If |
16 | MSComm1.PortOpen = False |
17 | Next |
18 | 'Else ' close port |
19 | ' XMCommCRC.PortOpen = False |
20 | ' CONNECT.Caption = "&Connect" |
21 | ' COM_SEL.Enabled = True |
22 | 'End If |
23 | End Sub |
Der Einhart hat mir die Lösung geschickt. Diese Zeile
1 | If MSComm1.PortOpen Then |
Aber wieso steht es dann falsch in dem Tutorial? Jaja, man soll nicht alles glauben was im Internet steht, aber eine SOOO einfache Sache falsch machen? Hmmm. http://www.activevb.de/tutorials/tut_com/com.html AHHHHHH, ICH DEPP!!!!! Dort steht If Err = 0 Then Ich hab da irgendwie ein If Error = 0 Then draus gemacht. Und wie es scheint liefert der Vergleich mit einer nicht deklarierten Variable immer False. ARGGGGGGGGGGHHHHHH Naja, wenigstens geht es jetzt. Nochmal vielen Dank an Einhart, der mir zweimal zu 100% geholfen hat! MFG Falk P S Und ich schreibe jetzt 100 mal. Man soll Beispielquelltext immer zu 100% kopieren und nicht abschreiben! :-0 P P S To err is human ;-)
Falk Brunner schrieb: > AHHHHHH, ICH DEPP!!!!! > > Dort steht > > If Err = 0 Then > > Ich hab da irgendwie ein > > If Error = 0 Then > > draus gemacht. Und wie es scheint liefert der Vergleich mit einer nicht > deklarierten Variable immer False. Hallo, dafür gibt es in VB die "Option Explicit" . Damit wäre dieser Fehler sofort aufgefallen... Gruss Gast
Schau dir mal die RSAPI.DLL an, funktioniert wunderbar und ist erklärt... (falls es noch aktuell ist o der mal Probleme auftauchen)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.