公告

國明的網路筆記

2023年7月24日 星期一

.Net SerialPort.Open 方法

 .Net SerialPort.Open 方法

https://learn.microsoft.com/zh-tw/dotnet/api/system.io.ports.serialport.open?view=dotnet-plat-ext-7.0


C#

public static void Main() { string name; string message; StringComparer stringComparer = StringComparer.OrdinalIgnoreCase; Thread readThread = new Thread(Read); // Create a new SerialPort object with default settings. _serialPort = new SerialPort(); // Allow the user to set the appropriate properties. _serialPort.PortName = SetPortName(_serialPort.PortName); _serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate); _serialPort.Parity = SetPortParity(_serialPort.Parity); _serialPort.DataBits = SetPortDataBits(_serialPort.DataBits); _serialPort.StopBits = SetPortStopBits(_serialPort.StopBits); _serialPort.Handshake = SetPortHandshake(_serialPort.Handshake); // Set the read/write timeouts _serialPort.ReadTimeout = 500; _serialPort.WriteTimeout = 500; _serialPort.Open(); _continue = true; readThread.Start(); Console.Write("Name: "); name = Console.ReadLine(); Console.WriteLine("Type QUIT to exit"); while (_continue) { message = Console.ReadLine(); if (stringComparer.Equals("quit", message)) { _continue = false; } else { _serialPort.WriteLine( String.Format("<{0}>: {1}", name, message)); } } readThread.Join(); _serialPort.Close(); } public static void Read() { while (_continue) { try { string message = _serialPort.ReadLine(); Console.WriteLine(message); } catch (TimeoutException) { } } }


通過命令提示符註冊加載.ocx控制項

 

通過命令提示符註冊加載.ocx控制項

【若出現 Dllregisterserver調用失敗,出現錯誤0x8002801c的解決方法】

這個問題一般是因為沒有管理員權限造成的,只要在以管理員身份運行的 cmd.exe 中輸入以下即可。

Win7系統就打開開始菜單,然後搜索cmd.exe,右鍵點擊該結果,選擇「以管理員身份運行」,但 Windows 10 須以管理員的身份運行cmd.exe,Win10系統可以在左下角搜索欄搜索cmd.exe,然後右鍵點擊該結果,選擇「以管理員身份運行」。

cd C:\Windows\SysWOW64

regsvr32 /u MSCOMM32.OCX

regsvr32 MSCOMM32.OCX

32位系統:「regsvr32 c:\Windows\system32\comctl32.ocx」

64位系統:「regsvr32 c:\Windows\SysWOW64\comctl32.ocx」

按照上面的方法步驟進行操作,.ocx格式控制項文件就可以註冊加載成功,也不會出現Dllregisterserver調用失敗,出現0x8002801c的錯誤了。遇到這個問題的朋友快去試試吧。

資料來源:https://kknews.cc/zh-tw/news/opm36o6.html