COM端口号 最近写了个winform程序是手持机与数据库交互导数据厂家提供了通讯历程,可以检查到手持机连接的USB口所映射的端口号C#怎样实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看 SerialPort m_Port= new SerialPort(); /// <summary> /// 打开串口 /// </summary> public void OpenDevice(string Com,int bote) { try { //m_Port.Close(); m_Port.PortName = Com;//串口号 m_Port.BaudRate = bote;//波特率 // m_Port.Handshake = Handshake.RequestToSendXOnXOff; m_Port.RtsEnable = true; //关键 U口转串口设备 m_Port.DtrEnable = true; m_Port.ReceivedBytesThreshold = 100; m_Port.ReadBufferSize = 90000; m_Port.Open(); m_Port.DataReceived += new SerialDataReceivedEventHandler(m_Port_DataReceived); //Thread readThread = new Thread(Read); //readThread.Start(); } catch (Exception ex) { MessageBox.Show("串口打开失败,系统不能运行,系统提示:" + ex.Message + "!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } 查询注册表。这个你自己有设备才能找到。受人渔:远程连接,查看设备上的注册表,你首先知道连接的com口,尝试在注册表中搜索:com2(假设是com2)。找到后。尝试在其他的设备上依然找这个注册表。就可以得到一个通用的寻找usb对应端口的方法。 HKEY hKey; LONG ret; OSVERSIONINFO osvi; BOOL bOsVersionInfoEx; char keyinfo[100],comm_name[200],ValueName[200]; int i; DWORD sType,Reserved,cbData,cbValueName; hIcon=AfxGetApp()-> LoadIcon(IDI_HARDWARE); SetIcon(hIcon,false); ZeroMemory(&osvi, sizeof(OSVERSIONINFO)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); memset(keyinfo,0,100); strcpy(keyinfo, "HARDWARE\\DEVICEMAP\\SERIALCOMM "); i=0; sType=REG_SZ;Reserved=0; bOsVersionInfoEx =GetVersionEx(&osvi); ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE,keyinfo,0,KEY_ALL_ACCESS,&hKey); if (ret==ERROR_SUCCESS){ // 10-25 if (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) { for(i=1;i <=128;i++) { sprintf(comm_name, "COM%d ",i); if (CommPortIsUsed(comm_name)==1) m_comlist.AddString(comm_name); } } else if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) { do { cbData=200;cbValueName=200; memset(comm_name,0,200); memset(ValueName,0,200); ret=RegEnumValue(hKey,i,ValueName,&cbValueName,NULL,&sType,(LPBYTE)comm_name,&cbData); if (ret==ERROR_SUCCESS) { if (CommPortIsUsed(comm_name)==1) m_comlist.AddString(comm_name); i++; } }while (ret==ERROR_SUCCESS); } } RegCloseKey(hKey); 以上为转发的某检测 COM 端口的程序。 请问各位大哥,一般笔试答对几成可以进入下一轮. winform client/server应用程序 linq 手动增加列 c#如何让键盘失效~ 通過openfiledialog讀取xml文件?請幫忙,謝謝! 急求 网络版软件注册授权思路(CS架构), 多谢!!!! SqlTransaction与TransactionScope在应用中有什么区别,分别在哪种情况下用 如何在Visual C#中实现图片的滚动缩放(B/S模式)? 足彩复式投注的中奖匹配问题 C# Tebcontrol remove问题 在写等! JS中 时间推算的问题 用DGV删除数据,如何取被删除的数据的一个字段值?
SerialPort m_Port= new SerialPort(); /// <summary>
/// 打开串口
/// </summary>
public void OpenDevice(string Com,int bote)
{
try
{
//m_Port.Close();
m_Port.PortName = Com;//串口号
m_Port.BaudRate = bote;//波特率
// m_Port.Handshake = Handshake.RequestToSendXOnXOff;
m_Port.RtsEnable = true; //关键 U口转串口设备
m_Port.DtrEnable = true;
m_Port.ReceivedBytesThreshold = 100;
m_Port.ReadBufferSize = 90000;
m_Port.Open();
m_Port.DataReceived += new SerialDataReceivedEventHandler(m_Port_DataReceived);
//Thread readThread = new Thread(Read);
//readThread.Start();
}
catch (Exception ex)
{
MessageBox.Show("串口打开失败,系统不能运行,系统提示:" + ex.Message + "!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
受人渔:
远程连接,查看设备上的注册表,你首先知道连接的com口,尝试在注册表中搜索:com2(假设是com2)。找到后。尝试在其他的设备上依然找这个注册表。就可以得到一个通用的寻找usb对应端口的方法。
LONG ret;
OSVERSIONINFO osvi;
BOOL bOsVersionInfoEx;
char keyinfo[100],comm_name[200],ValueName[200];
int i;
DWORD sType,Reserved,cbData,cbValueName; hIcon=AfxGetApp()-> LoadIcon(IDI_HARDWARE);
SetIcon(hIcon,false); ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); memset(keyinfo,0,100);
strcpy(keyinfo, "HARDWARE\\DEVICEMAP\\SERIALCOMM ");
i=0; sType=REG_SZ;Reserved=0;
bOsVersionInfoEx =GetVersionEx(&osvi);
ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE,keyinfo,0,KEY_ALL_ACCESS,&hKey);
if (ret==ERROR_SUCCESS){
// 10-25
if (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
{
for(i=1;i <=128;i++)
{
sprintf(comm_name, "COM%d ",i);
if (CommPortIsUsed(comm_name)==1) m_comlist.AddString(comm_name);
}
}
else if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
{
do
{
cbData=200;cbValueName=200;
memset(comm_name,0,200);
memset(ValueName,0,200);
ret=RegEnumValue(hKey,i,ValueName,&cbValueName,NULL,&sType,(LPBYTE)comm_name,&cbData);
if (ret==ERROR_SUCCESS)
{
if (CommPortIsUsed(comm_name)==1) m_comlist.AddString(comm_name);
i++;
}
}while (ret==ERROR_SUCCESS);
}
} RegCloseKey(hKey);