Привет, подскажите как работать с реестром.
От: Mars_RKK  
Дата: 23.09.06 19:20
Оценка:
Попытаюсь объяснить суть проблеммы, точнее нескольких:
1. У меня есть плата ввода-вывода, я ее установил с именем DM и вроде как зарегистрировал, она отображается под этим именем в диспечере устройств. Как мне извлечь информацию о том, на каком адресе она стоит, имя порта, в который она воткнута. Сама плата исашная.
2. Все тоже самое, но теперь мне известен адрес , на который установлена плата, можно ли зная его узнать имя платы и имя порта в который она воткнута.
3. Пусть у меня на компе активировано много COM портов, как мне узнать сколько и какие и по какому из них передаются данные известного мне формата, последнее вроде понятно как, сделать перебор по всем...

И отдаленный вопрос, могут ли на одном компьютерами с тремя физическими входами COM порта быть активировано например 17 COM портов?м Подскажите принцип активации нового порта.

С уважением, Иван.
Заранее спасибо.
Re: Привет, подскажите как работать с реестром.
От: Аноним  
Дата: 24.09.06 09:52
Оценка:
Здравствуйте, Mars_RKK, Вы писали:

M_R>Попытаюсь объяснить суть проблеммы, точнее нескольких:

M_R>1. У меня есть плата ввода-вывода, я ее установил с именем DM и вроде как зарегистрировал, она отображается под этим именем в диспечере устройств. Как мне извлечь информацию о том, на каком адресе она стоит, имя порта, в который она воткнута. Сама плата исашная.
M_R>2. Все тоже самое, но теперь мне известен адрес , на который установлена плата, можно ли зная его узнать имя платы и имя порта в который она воткнута.
M_R>3. Пусть у меня на компе активировано много COM портов, как мне узнать сколько и какие и по какому из них передаются данные известного мне формата, последнее вроде понятно как, сделать перебор по всем...

M_R>И отдаленный вопрос, могут ли на одном компьютерами с тремя физическими входами COM порта быть активировано например 17 COM портов?м Подскажите принцип активации нового порта.


M_R>С уважением, Иван.

M_R>Заранее спасибо.

Совершенно не ясно, что этот вопрос делает в .NET-форуме.
Тебе в "Низкоуровневое программирование".
Re[2]: Привет, подскажите как работать с реестром.
От: Mars_RKK  
Дата: 25.09.06 08:08
Оценка:
Я пишу на С#, мне бы и хотелось узнать существуют ли в framework 2.0 класы методы работы,, которые позволяют выполнять описанные операции.
Re: Привет, подскажите как работать с реестром.
От: Closer  
Дата: 25.09.06 08:22
Оценка:
Здравствуйте, Mars_RKK, Вы писали:

[skiped]

Думаю что эту информацию ты сможешь извлея используя WMI. Поиши на RSDN и в Google по информацию по работе в WMI на C#. На CodeProject тоже думаю есть примеры.

P.S.
Тебе дорога точно в группу "Низкоуровневое программирование"
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Мы были здесь. Но пора идти дальше. (с) Дуглас Коупленд, Рабы "Микрософт"
Re[2]: Привет, подскажите как работать с реестром.
От: Mars_RKK  
Дата: 25.09.06 09:36
Оценка:
Спасибо, поищу.
Просто я тут нарыл класс Registry в framework2.0 но вот как им пользоваться чтобы получить то что меня итнтересуте нифига не понял(
и не совсем понятно, почему чтение реестра считаеся низклуровневым программированием?
Re[3]: Привет, подскажите как работать с реестром.
От: Closer  
Дата: 25.09.06 09:57
Оценка:
Здравствуйте, Mars_RKK, Вы писали:

M_R>Спасибо, поищу.

M_R>Просто я тут нарыл класс Registry в framework2.0 но вот как им пользоваться чтобы получить то что меня итнтересуте нифига не понял(
M_R>и не совсем понятно, почему чтение реестра считаеся низклуровневым программированием?

Класс Registry из Microsoft.Win32.Registry используется для работы с реестром и позволяет выполнять такие операции как чтение ключей из реестра, запись ключей и т.п. Это класс не знает(!) где лежит та информация про КОМ порты которая тебе нужна да и не должен знать, не предназначен он для этого. Возможно что узнать конкретное место где эта информация лежит тебе помогут в группе "Низкоуровневое прогр.". Теперь понятно?

Что ещё можно посоветовать... Наверное только поискать в гугле т.к. вопрос довольно спецефический. Причём учитывай что скорее всего ты найдёшь решение на C++, а потом его потребуется перевести на C#. И второе не ограничивайся русскими ключевыми словами
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Мы были здесь. Но пора идти дальше. (с) Дуглас Коупленд, Рабы "Микрософт"
Re: Привет, подскажите как работать с реестром.
От: OldDino Россия  
Дата: 25.09.06 10:10
Оценка:
Здравствуйте, Mars_RKK, Вы писали:

Я бы обратился в этом случае к WMI, в частности, к классу WMI32_MotherboardDevice. Он тебе выдаст массу интересного. Привожу пример (сгенерированный):

using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
    public class MyWMIQuery
    {
        public static void Main()
        {
            try
            {
                ManagementObjectSearcher searcher = 
                    new ManagementObjectSearcher("root\\CIMV2", 
                    "SELECT * FROM Win32_MotherboardDevice"); 

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("Win32_MotherboardDevice instance");
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("Availability: {0}", queryObj["Availability"]);
                    Console.WriteLine("Caption: {0}", queryObj["Caption"]);
                    Console.WriteLine("ConfigManagerErrorCode: {0}", queryObj["ConfigManagerErrorCode"]);
                    Console.WriteLine("ConfigManagerUserConfig: {0}", queryObj["ConfigManagerUserConfig"]);
                    Console.WriteLine("CreationClassName: {0}", queryObj["CreationClassName"]);
                    Console.WriteLine("Description: {0}", queryObj["Description"]);
                    Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
                    Console.WriteLine("ErrorCleared: {0}", queryObj["ErrorCleared"]);
                    Console.WriteLine("ErrorDescription: {0}", queryObj["ErrorDescription"]);
                    Console.WriteLine("InstallDate: {0}", queryObj["InstallDate"]);
                    Console.WriteLine("LastErrorCode: {0}", queryObj["LastErrorCode"]);
                    Console.WriteLine("Name: {0}", queryObj["Name"]);
                    Console.WriteLine("PNPDeviceID: {0}", queryObj["PNPDeviceID"]);

                    if(queryObj["PowerManagementCapabilities"] == null)
                        Console.WriteLine("PowerManagementCapabilities: {0}", queryObj["PowerManagementCapabilities"]);
                    else
                    {
                        UInt16[] arrPowerManagementCapabilities = (UInt16[])(queryObj["PowerManagementCapabilities"]);
                        foreach (UInt16 arrValue in arrPowerManagementCapabilities)
                        {
                            Console.WriteLine("PowerManagementCapabilities: {0}", arrValue);
                        }
                    }
                    Console.WriteLine("PowerManagementSupported: {0}", queryObj["PowerManagementSupported"]);
                    Console.WriteLine("PrimaryBusType: {0}", queryObj["PrimaryBusType"]);
                    Console.WriteLine("RevisionNumber: {0}", queryObj["RevisionNumber"]);
                    Console.WriteLine("SecondaryBusType: {0}", queryObj["SecondaryBusType"]);
                    Console.WriteLine("Status: {0}", queryObj["Status"]);
                    Console.WriteLine("StatusInfo: {0}", queryObj["StatusInfo"]);
                    Console.WriteLine("SystemCreationClassName: {0}", queryObj["SystemCreationClassName"]);
                    Console.WriteLine("SystemName: {0}", queryObj["SystemName"]);
                }
            }
            catch (ManagementException e)
            {
                MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
            }
        }
    }
}


Попробуй откомпилировать у себя на компьютере и запустить.
Затем через ассоциированные классы Win32_AllocatedResource и Win32_PnpDevice сможешь вытащить ещё кое-что. Ну, а дальше — лопату в руки и копать.

С уважением,

OldDino


M_R>1. У меня есть плата ввода-вывода, я ее установил с именем DM и вроде как зарегистрировал, она отображается под этим именем в диспечере устройств. Как мне извлечь информацию о том, на каком адресе она стоит, имя порта, в который она воткнута. Сама плата исашная.

M_R>2. Все тоже самое, но теперь мне известен адрес , на который установлена плата, можно ли зная его узнать имя платы и имя порта в который она воткнута.
M_R>3. Пусть у меня на компе активировано много COM портов, как мне узнать сколько и какие и по какому из них передаются данные известного мне формата, последнее вроде понятно как, сделать перебор по всем...
Re[2]: Привет, подскажите как работать с реестром.
От: Mars_RKK  
Дата: 25.09.06 10:38
Оценка:
Спасибо, посмотрю...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.