私は、USBポートにバイトを送信することによって通信するアプリケーションを書いています。ユーザーがポートを選択してそれを行うことを許可したいのですが、私はSerialPort.GetPortNames()
を使用します。残念ながら、空の配列を返します。このメソッドはデータのレジストリ(HKEY_LOCAL_MACHINE \ HARDWARE \ DEVICEMAP \ SERIALCOMM)を読み込んでいますが、SERIALCOMMディレクトリがありません。 Linuxでプログラムを実行すると、4つのUSBポートが期待通りに表示されます。レジストリを修正したり、ポートを別の方法で発見するにはどうすればいいですか?Cでシリアルポートを発見する
答えて
SerialPort.GetPortNames()
は、シリアルポートを検出する正しい方法です。しかし、Windows 7を使用している場合は、このメソッドのリストにあるレジストリキーのアクセス許可に問題があると思います。私はMicrosoft.comでこの問題を説明する投稿を見つけました。
私は実際にWindows 7を使用しています。しかし、私は管理者としてregeditを開くと、私はまだディレクトリが表示されません。 –
また、ソリューションは空のディレクトリを作成します。 –
SerialPort.GetPortNames()
は、USBポートではなく、マシンにインストールされているCOMポートの一覧を返します。私は、WindowsはUSBポートのリストを提供するとは考えていないが、使用可能なUSBデバイスのみが提供されていると思う。
「ユニバーサルシリアルバス」という名前にもかかわらず、それらは慣習的な意味で「シリアルポート」ではありません。
管理オブジェクトを使用して、使用可能なCOMポートを照会することができます。興味深いのテーブルは以下のとおりです。ルートに
- MSSerial_PortName \ WMI ルートで
- MSWmi_PnPInstanceNames \ WMI
- Win32_PnPEntityのroot \ CIMV2
にあなたはWMI Code Creatorでこれらの名前空間を探索し、VBScriptを生成することができます/ VB/C#コード。
- 1. C#でシリアルポートをリフレッシュする方法#
- 2. MacOS:プログラムでシリアルポートを見つける?
- 3. のC#、シリアルポート
- 4. C#ファイルが見つからない(シリアルポートから読み取る)
- 5. シリアルポートの設定C++
- 6. Visual Studio - C# - シリアルポート - Mac
- 7. ArduinoとC#シリアルポート "クラッシュ"
- 8. CLI/C++シリアルポート - > ReadLine()
- 9. C#シリアルポート通信Arduino
- 10. Cのシリアルポートに文字をエコーする
- 11. Cで2つのシリアルポートを接続
- 12. c#シリアルポート経由でコマンドを送信
- 13. シリアルポート通信:シリアルポートを使用してシリアルポートをポーリングするDataReceivedイベント
- 14. C#:シリアルポートを読み取る - BytesToRead
- 15. c#シリアルポートのデータ損失
- 16. Linux Cシリアルポート読み書き
- 17. C#シリアルポートBNO055センサー通信
- 18. C#シリアルポート自動閉鎖
- 19. LinuxとCでシリアルポート経由でファイルを送信する
- 20. C#のシリアルポート、バイトシーケンスまで読み取り
- 21. C++ CreateFileでシリアルポートから読む
- 22. Readline()でシリアルポートをドロップする
- 23. シリアルポート経由でC#アプリとデバイスを同期する
- 24. シリアルポートからデータを読み込んで比較するC#
- 25. C#のシリアルポートとの間でデータを読み書きする
- 26. Mac OS Xでシリアルポート番号を見つける方法は?
- 27. セレンC#のリンク発見
- 28. シリアルポートが見つからない
- 29. C++ LinuxのシリアルポートにSTRINGSを書く
- 30. シリアルポートからバイトを読むC++ Windows
単純な説明は、マシンにはシリアルポートがないという単純な説明だけです。すべてのUSBデバイスドライバがシリアルポートをエミュレートするわけではありません。または、ドライバが正しくインストールされていないデバイスがある可能性があります。コントロールパネル+デバイスマネージャで再確認できます。 –