2017-02-10 6 views
-1

私はPOSアプリケーションにDisplayを接続しました。私は顧客のディスプレイにメッセージを表示するためにシリアルポートクラスを使用しています。メッセージに私はこのUSBディスプレイが使用しているCOMポートで知る必要があります。私は、そのコンピュータのためにすべてのCOMポットを取得するための多くの例があることを許可して検索しましたが、私はperticular comポート、例えばCOM93、COM01またはCOM2を取得するための任意のヘルプを見つけることができる。(USB対応)CustumerディスプレイのCOMポートを確認する

私は以下のプログラムを試してみましたが、私もMicrosoftプログラムのWMIコード作成者を試しました。

//シリアルポート名のリストを取得します。 string [] ports = SerialPort.GetPortNames();

Console.WriteLine("The following serial ports were found:"); 

    // Display each port name to the console. 
    foreach (string port in ports) 
    { 
     Console.WriteLine(port); 
    } 

Console.ReadLine(); 





     SerialPort sp = new SerialPort(); 
     sp.PortName = "COM93";------------- How i can find this no automatic 
     sp.BaudRate = 9600; 
     sp.Parity = Parity.None; 
     sp.DataBits = 8; 
     sp.StopBits = StopBits.One; 
     sp.Open(); 
     sp.Write("\f"); 
     sp.WriteLine("***Velkommen***"); 
     sp.Close(); 
     sp.Dispose(); 
     sp = null; 

私は私が私が罠に点在する権利を与えることをregistory編集する必要がアクセス拒否を取得し、このためにもこれを使用するために、同様のソリューションを、次の試してみました私は解決策をプログラム

ManagementObjectSearcher探索をしたいですか=新しいManagementObjectSearcher( "ルート\ WMI"、 "SELECT * FROM MSSerial_PortName");

答えて

0
public string Get_RegistryInfo(string VID, string PID) 
     { 
      try 
      { 
       RegistryKey rk1 = Registry.LocalMachine; 
       // HKEY_LOCAL_MACHINE 
       RegistryKey rk2 = rk1.OpenSubKey("HARDWARE\\\\DEVICEMAP\\\\SERIALCOMM"); 
       // HKEY_LOCAL_MACHINE\HARDWARE\\\\DEVICEMAP\\\\SERIALCOMM 
       VendorID = VID; 
       ProduktID = PID; 
       string pattern = string.Format("^VID_{0}.PID_{1}", VID, PID); 
       Regex _rx = new Regex(pattern, RegexOptions.IgnoreCase); 
       string rk2_SubKeyNames = null; 
       foreach (string rk2_SubKeyNames_loopVariable in rk2.GetValueNames()) 
       { 
        rk2_SubKeyNames = rk2_SubKeyNames_loopVariable; 
        if (rk2_SubKeyNames == "\\Device\\ProlificSerial0") 
        { 
         COM_Port = rk2.GetValue(rk2_SubKeyNames).ToString();       
        } 
       } 
       return COM_Port; 
      } 
      catch(Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
       return COM_Port; 
      } 

     } 
関連する問題