title image


Smiley Re: Das läuft auf einen kleinen "Hack" hinaus...
..., denn unter Windows darf immer nur EIN Programm die serielle Schnittstelle verwenden.Wenn Du also z.B. schreibst:MSComm1.CommPort = 1MSComm1.Settings = "1200,n,7,2"MSComm1.InputMode = comInputModeBinaryMSComm1.PortOpen = TrueDann werden die Parameter CommPort, Settings, InputMode usw. in dem Zeitpunkt, in dem Du den Port öffnest, in die entsprechenden Register übertragen.Wenn Du keine Werte angibst, werden eben Default-Werte verwendet.Keinesfalls werden die derzeitigen Einstellungen übernommen, so daß man sie lesen könnte.Nun könnte man versuchen, mit der WinApi - Funktion GetCommConfig() die Konfiguration des Ports zu lesen - dazu muß man den Port jedoch erst mit CreateFile() öffnen. Das geht bei Com-Ports jedoch nur EXCLUSIV - und schon knallt es wieder.Der "Hack" wäre nun, in einer anderen Programmiersprache als VB (C++, Pascal...) die Hardwareregister an Windows vorbei direkt zu lesen - entweder als eigenständige *.exe oder als *.dll, so daß man die Ergebnisse in VB weiterverarbeiten kann. Hier der C++ - Code:unsigned Adresse=0x3f8;int Ergebnis;Ergebnis = inp(Adresse);printf ("Ergebnis: = %Xh\n",Ergebnis);return 0;Das ganze setzt natürlich voraus, daß man die Port-Adressen kennt, in der Regel: Com1 = &h3F8 - &h3FF; Com2 = &h2F8 - &h2FF.Der hier beschriebene Ansatz ist unter Win-NT übrigens zum Scheitern verurteilt, da Windows NT Zugriffe direkt auf die Hardware verhindert.Du siehst: Du wirst Dich damit noch ein wenig beschäftigen müssen.Trotzdem: Viel Erfolg!Thomas Prötzschcu
Thomas Prötzsch

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: