一般来说串口号为COM1 --- COM9 但我想通过下面代码进行获取 /// <summary>
/// 获取PDA的端口号,并保存到ComboBox里面
/// </summary>
private void GetPdaSocket()
{
try
{
// 从 \\driver\\builtin\\ HKLM\Drivers\BuiltIn\Serial HKEY_LOCAL MACHINE\Drivers\BuiltIn
RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("\\Drivers\\BuiltIn");
if (keyCom != null)
{
string[] sSubKeys = keyCom.GetValueNames();
// 下拉框数据清空
this.cbxGPSConf.Items.Clear();
this.cbxGPSConf.Items.Add(String.Empty);
foreach (string sName in sSubKeys)
{
string sValue = (string)keyCom.GetValue(sName);
this.cbxGPSConf.Items.Add(sValue);
}
}
else {
MessageBox.Show("aaaaaaaasdfww");
}
}
catch(Exception ex)
{
// 系统异常信息
MessageBox.Show(ex.ToString());
}
}但是获取不到咯,是不是路径写的有问题啊,高手来看看
/// 获取PDA的端口号,并保存到ComboBox里面
/// </summary>
private void GetPdaSocket()
{
try
{
// 从 \\driver\\builtin\\ HKLM\Drivers\BuiltIn\Serial HKEY_LOCAL MACHINE\Drivers\BuiltIn
RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("\\Drivers\\BuiltIn");
if (keyCom != null)
{
string[] sSubKeys = keyCom.GetValueNames();
// 下拉框数据清空
this.cbxGPSConf.Items.Clear();
this.cbxGPSConf.Items.Add(String.Empty);
foreach (string sName in sSubKeys)
{
string sValue = (string)keyCom.GetValue(sName);
this.cbxGPSConf.Items.Add(sValue);
}
}
else {
MessageBox.Show("aaaaaaaasdfww");
}
}
catch(Exception ex)
{
// 系统异常信息
MessageBox.Show(ex.ToString());
}
}但是获取不到咯,是不是路径写的有问题啊,高手来看看
解决方案 »
- 谁有办法用C#实现获取跟下面js一样的数字。
- [求]组合排序后, 取组合值等于固定值
- server was unable to process request. object reference not set to an instance of an object.这个问题弄了好几天
- String类,帮忙。~~~~~~~~~~~
- C#如何连接SQLSERVER
- 新工作不爽,散分。。。。。。。!想搞java或者C++!!!!(现在C#,没劲)
- 一个关于调试的问题
- 用c#编写生成日志文件(xml文件)
- 如何将combobox1中数据安全赋给combobox2中。
- C#如何实现在百度模拟输入信息点击搜索呢?
- 如何在在单击listview的subitem时,使它变成下拉列表
- 散分!今天交项目了 高兴@
算我自己看错了。
你自己看看这个注册表项有没有数据吧
问题在PDA 没找到类似于regedit的命令,不会看注册表咯
/// <summary>
/// 枚举当前系统的串口设备
/// </summary>
/// <returns>返回名称列表</returns>
public static string[] EnumSystemDevice()
{
List<string> deviceList = new List<string>();
if (System.Environment.OSVersion.Platform == PlatformID.WinCE)
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Drivers\BuiltIn\", false); string[] strKeys = key.GetSubKeyNames();
foreach (string strKey in strKeys)
{
RegistryKey subKey = Registry.LocalMachine.OpenSubKey(@"Drivers\BuiltIn\" + strKey, false);
if (subKey != null)
{
object maskValue = subKey.GetValue("Prefix");
if (maskValue != null)
{
if ((maskValue as string) == "COM")
{
object strSerialIndex = subKey.GetValue("Index");
if (strSerialIndex != null)
{
if (deviceList.Contains(string.Format("COM{0}:", strSerialIndex.ToString())))
{
continue;
}
deviceList.Add(string.Format("COM{0}:", strSerialIndex.ToString()));
}
}
}
}
}
}
else//pc
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"HARDWARE\DEVICEMAP\SERIALCOMM", false);
string[] valueNames = key.GetValueNames();
foreach (string valueName in valueNames)
{
deviceList.Add(key.GetValue(valueName).ToString());
}
}
return deviceList.ToArray();
}
string[] ports = EnumSystemDevice();
foreach(string port in ports)
{
combobox1.Items.Add(port);
}就可以,顶多倒序一下。
using System.IO.Ports;namespace SerialPortExample
{
class SerialPortExample
{
public static void Main()
{
// Get a list of serial port names.
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();
} }
}
{
comboBox1.Items.Add(s);
}
我准备把分的大头给wyz&xyl ,如果还有人想拿分的话,请到
http://topic.csdn.net/u/20081223/10/a9a21553-75de-4fd8-88a1-da8d03554514.html 100分帖
http://topic.csdn.net/u/20081222/14/c1ff705a-4be2-435d-a754-2d8198b79b77.html 20分帖 (当时忘改分了)