C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: Bluetooth SPP / USB シリアル判別


(過去ログ 132 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■78192 / inTopicNo.1)  Bluetooth SPP / USB シリアル判別
  
□投稿者/ jinjin (1回)-(2015/12/21(Mon) 15:05:03)

分類:[.NET 全般] 

(仮想)COMポートのデバイスが
Bluetoothか、USB RS232C変換 ケーブルなのか
を判断したい。

http://stackoverflow.com/questions/21760445/querying-wmi-win32-serialport-locks-up-serial-port
とWMI Code Creator をつかって判定をすることはできました。

★★★ 問題点
種別判定をおこなうと、その後の
SerialPortのOpen()でエラー(例外)が発生する。
数回リトライで、Open()は成功するが、数十秒時間がかかる。


// SerialPort _serialPort;
// _serialPortをNew
// COMnを判定し、_serialPortのプロパティ(ボーレートなど)を設定

int retryCount = 10;
while (true)
{
	try
	{
		_serialPort.Open();
		break;
	}
	catch (Exception e)
	{
		if (--retryCount == 0)
			throw;
		else
			continue;
	}
}
↑↑↑ のようにリトライすると、4,5回目位で成功する。
失敗は、COMnがBluetooth SPPの時に発生する。
判定処理をコメント アウトするとエラーは発生しない。


例外のメッセージは、
  ”デバイスが未接続” とか
  ”セマフォがタイムアウト”
とかになる。


COMn デバイス判別コードは ↓↓↓
public static bool IsBluetoothComPort(string portName)
{
    using (ManagementObject obj = GetComManagementObject(portName))
    {
        if (obj == null)
            return false;
        return obj.GetPropertyValue("Name").ToString().Contains("Bluetooth");
    }
}

public static ManagementObject GetComManagementObject(string portName)
{
    try
    {
        using (ManagementObjectSearcher searcher =
            new ManagementObjectSearcher("root\\CIMV2",
            "SELECT * FROM Win32_SerialPort"))
        {
            foreach (ManagementObject queryObj in searcher.Get())
            {
                if (queryObj.GetPropertyValue("Name").ToString().Contains(portName))
                {
                    return queryObj;
                }
                queryObj.Dispose();
            }
        }
    }
    catch (Exception e)
    {
        return null;
    }
    return null;
}


★★★ お聞きしたいこと

1. Openに失敗しないよう変更できるか?
2. 別の方法で、Bluetooth SPP  or Not を判別できるか(WMI以外?)


.NET Framework 4.0
C#
WPF デスクトップ アプリケーション

開発PC   Win7  64ビット
  

引用返信 編集キー/
■78193 / inTopicNo.2)  Re[1]: Bluetooth SPP / USB シリアル判別
□投稿者/ とっちゃん (320回)-(2015/12/21(Mon) 15:45:08)
No78192 (jinjin さん) に返信

> 種別判定をおこなうと、その後の
> SerialPortのOpen()でエラー(例外)が発生する。
> 数回リトライで、Open()は成功するが、数十秒時間がかかる。
> 
どんな例外が発生するのでしょうか?
ポートを確認しなければオープンできるというのであれば
ポートの確認処理のどこかに問題があるということだと思います。

リトライをしている間にオープンできるようになるということは
排他制御的な何かが原因の単純なエラーリトライなのか
なにかエラーが出ていてオープンすることでそれが少しずつリカバリーされていくなどなのか

何かしらの手掛かりはあるはずです。

まずはその手掛かりを調査してみることをお勧めします。

デバッガ実行してで、

catch( Excpeption e )

の次の行で
Debug.Print( e.ToString() );

などで、例外情報を出力画面などに表示してみれば詳細が見えるでしょう。
純粋に回数が必要な問題なら、デバッガで停止させつつ細かな例外情報を見てもいいと思います。

> 
> 
> ★★★ お聞きしたいこと
> 
> 1. Openに失敗しないよう変更できるか?
> 2. 別の方法で、Bluetooth SPP  or Not を判別できるか(WMI以外?)
> 
どんな例外が発生しているかがわかれば
Open に失敗しない方法があるか?(エラーの原因から逆引き的に求める)
は判断できるかもしれません。

2は、WMI が判断で来ているので極論すればその方法がわかれば判定できます。
ハード系のことは詳しくないので調査手段があるかどうかも含めてわかりませんが。。。

そういえば、WMI は COMインターフェース だったはずだ。。。と思ってちょっとMSDNをチェックしてみました。


> foreach (ManagementObject queryObj in searcher.Get())
ここで使っている、searcher.Get() の返す、ManagementObjectCollection は、IDisposable インターフェースを持っているので
using する必要があります。

ちょっと面倒ですが、
using( ManagementObjectCollection col= searcher.Get() )
{
  forearch( ManagementObject query in col )
  {
    ...
  }
}
という感じにしてやる必要があると思います。
もしかしたらこれが原因の可能性もありますが、検証などなどは行ってません。

引用返信 編集キー/
■78194 / inTopicNo.3)  Re[2]: Bluetooth SPP / USB シリアル判別
□投稿者/ jinjin (2回)-(2015/12/21(Mon) 16:11:14)
No78193 (とっちゃん さん) に返信
> ■No78192 (jinjin さん) に返信

返信ありがとうございます。

> デバッガ実行してで、
> 
> catch( Excpeption e )
> 
> の次の行で
> Debug.Print( e.ToString() );

貼り付けたコードでは、削除しましたが
catch (Exception 
   System.Diagnostics.Debug.WriteLine(e.Message);
   if (--retryCount == 0)
    throw;

実際のコードは↑↑↑のようになっていて

例外のメッセージは、
  ”デバイスが未接続” とか
  ”セマフォがタイムアウト”
とかになる。
なお、↑↑↑のメッセージは少し不正確ですが、
こんな感じのメッセージになります。




>>foreach (ManagementObject queryObj in searcher.Get())
> ここで使っている、searcher.Get() の返す、ManagementObjectCollection は、IDisposable インターフェースを持っているので
> using する必要があります。

現行のコードでは、IDisposableのオブジェクトは、
すべてDisposeしています。

WMI Code Creator(https://www.microsoft.com/en-us/download/details.aspx?id=8572)
が吐き出すコードでは、Disposeはされない。
そこが怪しいと思って、Disposeしてみたのですが、
結果かわらず。

海外の掲示板(どこだかわすれた)で、WMI SerialPortをするときは、”非同期にしなければならない”
とEnglishでかかれていたっぽいので、

ManagementOperationObserver
を使ったコードを試してみましたが、状況は変わりませんでした。


引用返信 編集キー/
■78195 / inTopicNo.4)  Re[3]: Bluetooth SPP / USB シリアル判別
□投稿者/ とっちゃん (321回)-(2015/12/21(Mon) 16:49:58)
No78194 (jinjin さん) に返信
> 実際のコードは↑↑↑のようになっていて
>
> 例外のメッセージは、
>   ”デバイスが未接続” とか
>   ”セマフォがタイムアウト”
> とかになる。
> なお、↑↑↑のメッセージは少し不正確ですが、
> こんな感じのメッセージになります。
>
状況によって出てくる例外が変わるということでしょうか?
であれば、もう少し細かく例外の内容を確認し、そこにヒントがないか探してみてはどうでしょう?

よわからないという場合は、ちゃんとした e.ToString() して全部のデータをダンプし
例外クラス名も含めて引っ張ってくるとより詳細なヒントが見つかるかもしれません。

e.Message だと、例外オブジェクトがユーザーに見せるために用意したメッセージしか表示しません。
デバッグの場合はこれだと必要十分な情報とは言えないので、ダンプするなら
ToString() で表示できるものを全部表示してもらったほうがいいです。

また、InnerException がある場合はそれに対しても再帰的に e.ToString() してやると
より詳細な情報を取り出すことができると思います。


> 現行のコードでは、IDisposableのオブジェクトは、
> すべてDisposeしています。
>
とすると、using 問題ではないのかもしれませんね。


> WMI Code Creator(https://www.microsoft.com/en-us/download/details.aspx?id=8572)
> が吐き出すコードでは、Disposeはされない。
> そこが怪しいと思って、Disposeしてみたのですが、
> 結果かわらず。
>
> 海外の掲示板(どこだかわすれた)で、WMI SerialPortをするときは、”非同期にしなければならない”
> とEnglishでかかれていたっぽいので、
>
> ManagementOperationObserver
> を使ったコードを試してみましたが、状況は変わりませんでした。
>
>
シリアルポートの調査の場合に非同期にというのが本当かどうかはわかりませんが
もしかしたら、適宜 DoEvents() 相当の処理が必要とかそういう可能性があるかもしれません。

別スレッドを起こしてそっちで処理する&そのスレッドはUIスレッドの必要があってさらにメッセージポンプをまわす
必要があるとかそういう話なのかなぁ?

引用返信 編集キー/
■78196 / inTopicNo.5)  Re[4]: Bluetooth SPP / USB シリアル判別
□投稿者/ jinjin (3回)-(2015/12/21(Mon) 17:34:47)
No78195 (とっちゃん さん) に返信
> ■No78194 (jinjin さん) に返信

e.ToString() で例外をトレースしてみました。

catch (Exception e)
{
   System.Diagnostics.Debug.Write(e.ToString());


例外がスローされました: 'System.IO.IOException' (System.dll の中)
System.IO.IOException: 要素が見つかりません。

   場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
   場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
   場所 System.IO.Ports.SerialPort.Open()
   場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225例外がスローされました: 'System.IO.IOException' (System.dll の中)
System.IO.IOException: 要素が見つかりません。

   場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
   場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
   場所 System.IO.Ports.SerialPort.Open()
   場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225スレッド 0x122c はコード 0 (0x0) で終了しました。
例外がスローされました: 'System.IO.IOException' (System.dll の中)
System.IO.IOException: セマフォがタイムアウトしました。

   場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
   場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
   場所 System.IO.Ports.SerialPort.Open()
   場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225スレッド 0x5e0 はコード 0 (0x0) で終了しました。
例外がスローされました: 'System.IO.IOException' (System.dll の中)
System.IO.IOException: デバイスが接続されていません。

   場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
   場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
   場所 System.IO.Ports.SerialPort.Open()
   場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225'ホニャララ.vshost.exe' (CLR v4.0.30319: ホニャララ.vshost.exe): 'Settings.dll' が読み込まれました。シンボルが読み込まれました。
例外がスローされました: 'System.Exception' (ホニャララ.dll の中)
スレッド 0x2784 はコード 0 (0x0) で終了しました。

↑↑↑ 一部、個人情報部を伏せています。



メッセージ部だけ切り出すと。

例外がスローされました: 'System.IO.IOException' (System.dll の中)

System.IO.IOException: 要素が見つかりません。

System.IO.IOException: セマフォがタイムアウトしました。

System.IO.IOException: デバイスが接続されていません。

ときて、次のRetry Openで成功します。



今回は、Suface Pro(Win10)、内蔵Bluetoothで実行 。


引用返信 編集キー/
■78197 / inTopicNo.6)  Re[5]: Bluetooth SPP / USB シリアル判別
□投稿者/ とっちゃん (322回)-(2015/12/21(Mon) 18:13:05)
No78196 (jinjin さん) に返信
> e.ToString() で例外をトレースしてみました。
>
> catch (Exception e)
> {
> System.Diagnostics.Debug.Write(e.ToString());
>
Write ではなく、WriteLine にしないとメッセージの最後に改行がないので、くっついちゃいますよ。


>
> 例外がスローされました: 'System.IO.IOException' (System.dll の中)
> System.IO.IOException: 要素が見つかりません。
>
> 場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
> 場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
> 場所 System.IO.Ports.SerialPort.Open()
> 場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225


> 例外がスローされました: 'System.IO.IOException' (System.dll の中)
> System.IO.IOException: 要素が見つかりません。
>
> 場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
> 場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
> 場所 System.IO.Ports.SerialPort.Open()
> 場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225

>スレッド 0x122c はコード 0 (0x0) で終了しました。

> 例外がスローされました: 'System.IO.IOException' (System.dll の中)
> System.IO.IOException: セマフォがタイムアウトしました。
>
> 場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
> 場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
> 場所 System.IO.Ports.SerialPort.Open()
> 場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225

>スレッド 0x5e0 はコード 0 (0x0) で終了しました。

> 例外がスローされました: 'System.IO.IOException' (System.dll の中)
> System.IO.IOException: デバイスが接続されていません。
>
> 場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
> 場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
> 場所 System.IO.Ports.SerialPort.Open()
> 場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225

> 'ホニャララ.vshost.exe' (CLR v4.0.30319: ホニャララ.vshost.exe): 'Settings.dll' が読み込まれました。シンボルが読み込まれました。

> 例外がスローされました: 'System.Exception' (ホニャララ.dll の中)
> スレッド 0x2784 はコード 0 (0x0) で終了しました。
>
という感じで都合5個の例外が出ているようです。

最後の部分は、ユーザーコードなのでよくわからないですけど。


> メッセージ部だけ切り出すと。
>
> 例外がスローされました: 'System.IO.IOException' (System.dll の中)
>
> System.IO.IOException: 要素が見つかりません。
>
> System.IO.IOException: セマフォがタイムアウトしました。
>
> System.IO.IOException: デバイスが接続されていません。
>
> ときて、次のRetry Openで成功します。
>
上記例外は、1度に1つずつ出ていて何度かリトライした後最終的に成功するという形でしょうか?

一応。。。
SerialPort.GetPortNames() メソッドでは判断がつかないのですよね?
Name で判断してるので、わざわざ WMI 使わないとダメなの?というのがちょっと気になりました。


引用返信 編集キー/
■78198 / inTopicNo.7)  Re[6]: Bluetooth SPP / USB シリアル判別
□投稿者/ とっちゃん (323回)-(2015/12/21(Mon) 18:20:09)
No78196 (jinjin さん) に返信
> e.ToString() で例外をトレースしてみました。
>
> catch (Exception e)
> {
> System.Diagnostics.Debug.Write(e.ToString());
>
Write ではなく、WriteLine にしないとメッセージの最後に改行がないので、くっついちゃいますよ。


>
> 例外がスローされました: 'System.IO.IOException' (System.dll の中)
> System.IO.IOException: 要素が見つかりません。
>
> 場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
> 場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
> 場所 System.IO.Ports.SerialPort.Open()
> 場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225


> 例外がスローされました: 'System.IO.IOException' (System.dll の中)
> System.IO.IOException: 要素が見つかりません。
>
> 場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
> 場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
> 場所 System.IO.Ports.SerialPort.Open()
> 場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225

>スレッド 0x122c はコード 0 (0x0) で終了しました。

> 例外がスローされました: 'System.IO.IOException' (System.dll の中)
> System.IO.IOException: セマフォがタイムアウトしました。
>
> 場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
> 場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
> 場所 System.IO.Ports.SerialPort.Open()
> 場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225

>スレッド 0x5e0 はコード 0 (0x0) で終了しました。

> 例外がスローされました: 'System.IO.IOException' (System.dll の中)
> System.IO.IOException: デバイスが接続されていません。
>
> 場所 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
> 場所 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
> 場所 System.IO.Ports.SerialPort.Open()
> 場所 ComPort通信.Connect() 場所 ComPort通信.cs:行 225

> 'ホニャララ.vshost.exe' (CLR v4.0.30319: ホニャララ.vshost.exe): 'Settings.dll' が読み込まれました。シンボルが読み込まれました。

> 例外がスローされました: 'System.Exception' (ホニャララ.dll の中)
> スレッド 0x2784 はコード 0 (0x0) で終了しました。
>
という感じで都合5個の例外が出ているようです。

最後の部分は、ユーザーコードなのでよくわからないですけど。


> メッセージ部だけ切り出すと。
>
> 例外がスローされました: 'System.IO.IOException' (System.dll の中)
>
> System.IO.IOException: 要素が見つかりません。
>
> System.IO.IOException: セマフォがタイムアウトしました。
>
> System.IO.IOException: デバイスが接続されていません。
>
> ときて、次のRetry Openで成功します。
>
上記例外は、1度に1つずつ出ていて何度かリトライした後最終的に成功するという形でしょうか?

一応。。。
SerialPort.GetPortNames() メソッドでは判断がつかないのですよね?
Name プロパティに含まれるか?で判断しているので、わざわざWMI使わないとダメなの?
というのがちょっと気になりました。

まぁ例外発生とは直接関係はないのですが、WMIを経由せずに済むならそれに越したことはないだろうな。。。
ということで。一応確認まで。

引用返信 編集キー/
■78212 / inTopicNo.8)  Re[7]: Bluetooth SPP / USB シリアル判別
□投稿者/ C#あまぐらま (1回)-(2015/12/22(Tue) 06:38:05)
判定部分で該当デバイスである場合とそうでない場合とでオブジェクトの廃棄処理が異なると思われるのですが・・・
それが影響してないですか?

引用返信 編集キー/
■78223 / inTopicNo.9)  Re[7]: Bluetooth SPP / USB シリアル判別
□投稿者/ jinjin (4回)-(2015/12/24(Thu) 10:49:34)
No78198 (とっちゃん さん) に返信
> ■No78196 (jinjin さん) に返信

>>
> 上記例外は、1度に1つずつ出ていて何度かリトライした後最終的に成功するという形でしょうか?

はい。
while (true)
{
try
{
_serialPort.Open();
break;
}
catch (Exception e)
{
if (--retryCount == 0)
throw;
else
continue;
}
}

↑↑↑ このループ内で、数回例外がでた後成功してループを抜けています。

_serialPort.Open()
が、例外で失敗すまで、5秒以上かかるので(WMIでBluetooth 判定後に限り)
シリアルポートをOpenするのに40秒位かかります。



> SerialPort.GetPortNames() メソッドでは判断がつかないのですよね?
判断が付きません。
戻り値は、”COM1”とか"COM2"の文字列です。
この、”COM2”はBluetoothのSPP ? or Not を判断したい。

> Name プロパティに含まれるか?で判断しているので、わざわざWMI使わないとダメなの?
> というのがちょっと気になりました。

WMIを使いたい訳ではありません。
Googleで検索して、使えそうだったのがWMI経由だっただけです。
ほかに、レジストリをつかって〜 って言うものあったけど。。。


>
> まぁ例外発生とは直接関係はないのですが、WMIを経由せずに済むならそれに越したことはないだろうな。。。

他に、方法があれば、そちらを試してみたいです。
MSのドキュメントとかで、”これを読めばわかる”みたいなものないですかね?
いつも、Google検索で引っかかったコードをコピペッて感じで対処しているので、
基本的なスキルがありません。私。


引用返信 編集キー/
■78224 / inTopicNo.10)  Re[8]: Bluetooth SPP / USB シリアル判別
□投稿者/ とっちゃん (324回)-(2015/12/24(Thu) 11:58:54)
No78223 (jinjin さん) に返信

> WMIを使いたい訳ではありません。
> Googleで検索して、使えそうだったのがWMI経由だっただけです。
> ほかに、レジストリをつかって〜 って言うものあったけど。。。
>
WMIを経由しているからその中もプログラム的にピックアップしているとは限りません。
というか、WMIの内部実装のほとんどは、レジストリを読む・特定の設定ファイルを読む
というようなきわめて泥臭い手段で実装されています。

それを規定のインターフェースセットにまとめることで、システム管理しやすいように
取りまとめただけのものです(もともと開発向けのインターフェースではない)。

なので、本来ならレジストリを見て。。。という形しかないのかもしれません。
(昔COMポートとして見せてるのが何かはレジストリを見ろみたいなのを見た気が。。。)


> 他に、方法があれば、そちらを試してみたいです。
> MSのドキュメントとかで、”これを読めばわかる”みたいなものないですかね?

シリアル接続とかは自分ではやらないのでちょっとわからんですね。


> いつも、Google検索で引っかかったコードをコピペッて感じで対処しているので、
> 基本的なスキルがありません。私。
>
ぺたっとするだけじゃなくてそこに何が書かれているかも同時に学んでいけばいいかと。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -