博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC下边自动寻找串口
阅读量:4031 次
发布时间:2019-05-24

本文共 2461 字,大约阅读时间需要 8 分钟。

摘自:http://blog.csdn.net/itas109/article/details/18359295

程序:http://blog.csdn.net/itas109/article/details/18359295

serial类里边的两个函数

void CSerialPort::Hkey2ComboBox(CComboBox& m_PortNO){	HKEY hTestKey;	bool Flag = FALSE;		///仅是XP系统的注册表位置,其他系统根据实际情况做修改	if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("HARDWARE\\DEVICEMAP\\SERIALCOMM"), 0, KEY_READ, &hTestKey) ){		QueryKey(hTestKey);	}	RegCloseKey(hTestKey);		int i = 0;	m_PortNO.ResetContent();///刷新时,清空下拉列表内容	while(i < MaxSerialPortNum && -1 != m_nComArray[i]){		CString szCom; 		szCom.Format(_T("COM%d"), m_nComArray[i]);		m_PortNO.InsertString(i, szCom.GetBuffer(5));		++i;		Flag = TRUE;		if (Flag)///把第一个发现的串口设为下拉列表的默认值			m_PortNO.SetCurSel(0);	}	}
///查询注册表的串口号,将值存于数组中///本代码参考于mingojiang的获取串口逻辑名代码//void CSerialPort::QueryKey(HKEY hKey) { 	#define MAX_KEY_LENGTH 255	#define MAX_VALUE_NAME 16383	//	TCHAR    achKey[MAX_KEY_LENGTH];   // buffer for subkey name	//	DWORD    cbName;                   // size of name string 	TCHAR    achClass[MAX_PATH] = TEXT("");  // buffer for class name 	DWORD    cchClassName = MAX_PATH;  // size of class string 	DWORD    cSubKeys=0;               // number of subkeys 	DWORD    cbMaxSubKey;              // longest subkey size 	DWORD    cchMaxClass;              // longest class string 	DWORD    cValues;              // number of values for key 	DWORD    cchMaxValue;          // longest value name 	DWORD    cbMaxValueData;       // longest value data 	DWORD    cbSecurityDescriptor; // size of security descriptor 	FILETIME ftLastWriteTime;      // last write time 		DWORD i, retCode; 		TCHAR  achValue[MAX_VALUE_NAME]; 	DWORD cchValue = MAX_VALUE_NAME; 		// Get the class name and the value count. 	retCode = RegQueryInfoKey(		hKey,                    // key handle 		achClass,                // buffer for class name 		&cchClassName,           // size of class string 		NULL,                    // reserved 		&cSubKeys,               // number of subkeys 		&cbMaxSubKey,            // longest subkey size 		&cchMaxClass,            // longest class string 		&cValues,                // number of values for this key 		&cchMaxValue,            // longest value name 		&cbMaxValueData,         // longest value data 		&cbSecurityDescriptor,   // security descriptor 		&ftLastWriteTime);       // last write time 		for (i=0;i<20;i++)///存放串口号的数组初始化	{		m_nComArray[i] = -1;	}		// Enumerate the key values. 	if (cValues > 0) {		for (i=0, retCode=ERROR_SUCCESS; i

你可能感兴趣的文章
[LeetCode By Python]9. Palindrome Number
查看>>
[leetCode By Python] 14. Longest Common Prefix
查看>>
[LeetCode By Python]107. Binary Tree Level Order Traversal II
查看>>
[LeetCode By Python]108. Convert Sorted Array to Binary Search Tree
查看>>
[leetCode By Python]111. Minimum Depth of Binary Tree
查看>>
[LeetCode By Python]118. Pascal's Triangle
查看>>
[LeetCode By Python]121. Best Time to Buy and Sell Stock
查看>>
[LeetCode By Python]122. Best Time to Buy and Sell Stock II
查看>>
[LeetCode By Python]125. Valid Palindrome
查看>>
[LeetCode By Python]136. Single Number
查看>>
[LeetCode By Python]167. Two Sum II - Input array is sorted
查看>>
[LeetCode BY Python]169. Majority Element
查看>>
[LeetCode By Python]172. Factorial Trailing Zeroes
查看>>
[LeetCode By MYSQL] Combine Two Tables
查看>>
python jieba分词模块的基本用法
查看>>
[CCF BY C++]2017.12 最小差值
查看>>
[CCF BY C++]2017-12 游戏
查看>>
如何打开ipynb文件
查看>>
[Leetcode BY python ]190. Reverse Bits
查看>>
面试---刷牛客算法题
查看>>