Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
ComPort öffnen schlägt fehl
Hummakavula
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

ComPort öffnen schlägt fehl

beantworten | zitieren | melden

Hallöchen,

ich habe ein Problem, bei dem ich nicht weiter komme:

Ich möchte Daten von einem Handscanner an einer seriellen Schnittstelle auslesen. Der Scanner funktionert auch und wird im Gerätemanager an COM4 angezeigt.


System.IO.Ports.SerialPort.GetPortNames();

gibt mir auch COM4 aus.


SerialPort _serialPort = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);
try
{
      _serialPort.Open();
}
catch (Exception ex)
{
      MessageBox.Show(ex.ToString());
}

endet aber mit einer IOException:
Fehler
COM4 ist nicht vorhanden!

Hat irgendjemand vielleicht eine Idee?

Danke
private Nachricht | Beiträge des Benutzers
Spook
myCSharp.de - Member



Dabei seit:
Beiträge: 241
Herkunft: Esslingen a.N.

beantworten | zitieren | melden

Hallo Hummakavula,

SerialPort.GetPortNames aufrufen und schauen, ob der Port gelistet wird.

grüße
spooky
private Nachricht | Beiträge des Benutzers
Hummakavula
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

beantworten | zitieren | melden

steht in meinem Eröffnungspost - das mache ich bereits!
private Nachricht | Beiträge des Benutzers
Hummakavula
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

beantworten | zitieren | melden

hmm, habs gefunden.

Ist eine Windows-Rechte-Problem.

Die Frage nur warum "System.IO.Ports.SerialPort.GetPortNames();" funktioniert, aber


SerialPort _serialPort = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);
_serialPort.Open();

nur mit Adminrechten?
private Nachricht | Beiträge des Benutzers
p!lle
myCSharp.de - Member

Avatar #avatar-3556.jpg


Dabei seit:
Beiträge: 1.040

beantworten | zitieren | melden

Aus rein logischer Sicht:
Einmal wird nur etwas abgefragt - aber einen Port zu Öffnen ist schon eine andere Hausnummer.
private Nachricht | Beiträge des Benutzers
Deaktiviertes Profil
myCSharp.de - Member



Dabei seit:
Beiträge: 985

beantworten | zitieren | melden

Versuche es doch mal nur mit


SerialPort _serialPort = new SerialPort("COM4");
Das Verwenden ist für alle Benutzer erlaubt, das Ändern der Einstellungen aber nicht.

Ist soweit Quark, denn intern wird der gleiche Konstruktor aufgerufen, nur mit den fest hinterlegten Default-Werten. Sollte also rein garnichts bringen.

Ein Blick in ReferenceSource erzählt mir was über SerialPort.Open - SecurityPermissionFlag.UnmanagedCode was hier der Auslöser sein könnte.

Alternativ mal GitHub - SerialPortStream anschauen.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Deaktiviertes Profil am .
private Nachricht | Beiträge des Benutzers