Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Keyboard serial number


Автор: ashotnalbandyan 1.2.2010, 09:42
Zdrastvuyte. u menya prablema druzya. ya doljen mayu pragrammu, napisannoe na C#, privyazat' s kankretnoy klaviaturoy. i po etomu mne nujno paluchit seriini kod klaviaturi ili kakoe nebut' unikalni kod(nomer). klaviatura ne standartnaya, no pomoemu ego arxitektura standartnaya. podskajite pojaluysta, kak paluchit unikalni kod klaviaturi?
spasibo...

Автор: tol05 1.2.2010, 11:15
я думаю что Вам нужно использовать WMI. В частности, класс Win32_Keyboard.
http://www.dreamincode.net/forums/showtopic63149.htm

Автор: ashotnalbandyan 1.2.2010, 13:40
tol05   ya posmotrel i paproboval, nu ne udayotsa paluchit' ni adnoy unikalni kod, kak serial . mne nujna chtobi otlichit odna ili drugaya klaviatura vklyuchena kampyuteru. podstajite chtonibut' esho. mojet ya chto nibut nito delayu?

ManagementObjectSearcher keyboard = new ManagementObjectSearcher("root\\CIMv2", "SELECT * FROM Win32_Keyboard");

                        foreach(ManagementObject tecla in keyboard.Get())
                        {
                            foreach (PropertyData pdc in tecla.Properties)
                            {
                                try
                                {
                                    Console.WriteLine(pdc.Name+":  "+tecla.GetPropertyValue(pdc.Name));
                                }
                                catch
                                {
                                    Console.WriteLine("Not Found Device!!");
                                }
                            }
                        }
                        Console.WriteLine("---------------------------------------------------------------");

Автор: ashotnalbandyan 1.2.2010, 14:32
Mne nujna chtobi pragramno otlichit' odin klaviatura ot drugoy. podskajite kolegi.....
chem odna klaviatura mojno otlichit ot drugova pragramno? kak paluchit' unikalni nomer klaviaturrriiiii...  smile 

Автор: Fortnox 1.2.2010, 16:17
Как-то так:
Код

            string query = "SELECT * FROM Win32_Keyboard";
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
            ManagementObjectCollection results = searcher.Get();
            List<string> keyboard = new List<string>(results.Count);
            if (results.Count != 0)
            {
                foreach (System.Management.ManagementObject keyboardObject in results)
                {
                    keyboard.Add(keyboardObject["DeviceID"].ToString());
                }
            }

            foreach (string keyboardID in keyboard)
                Console.WriteLine("{0}", keyboardID);
            Console.ReadLine();


Проверил на 3 компьютерах, вывод:
Код

ACPI\PNP0303\4&40474C7&0
ACPI\PNP0303\3&2411E6FE&0
ACPI\PNP0303\4&2AA64497&0


Вроде уникальный. Только не факт, что он будет таким и после переподключения той же клавиатуры.

Автор: ashotnalbandyan 1.2.2010, 16:37
uvajaemoy  Fortnox spasibo za popitku pomogat' mne, no ya naverno nexarasho obyasnil moyu brablemu. prestav' ya paluchil etot unikalni kod, a patom na tot je kampyuter menyayu klavyaturu i opyat pri rabote moya programma (i vash otpravlennoy kod toje) vazvrashaet odno i to je DeviceID, a nado Device ID(ili drugoy unikalni) dlya DANNOVO uje klaviaturi. nu kak skaxat', nenado pomenyat kamputer, a nado na tot je kamputer menyat' klaviaturi. pokajite kak. pomoemu etim metodom katoruyu vi napisali mi paluchaem nenastayashuyu serial number, katori odin i tot je na vsex kamputerax dlya dannogo klaviaturi. ya xarasho obyasnil v chyom vapros? izvinite za plaxovo russkovo, ya ne is rasii. esli mojete pomogite s problemoy smile 

 ! 
PashaPash

Используй
Чекбокс
"Транслит"
Не издевайся над глазами других участников! :)

Автор: PashaPash 1.2.2010, 16:40
DeviceId - это "модель" клавиатуры, а не уникальный номер. Никаких серийников у клавиатур нет.

Автор: ashotnalbandyan 1.2.2010, 16:45
PashaPash как я понял из вашево ответа нелзыа отличить разние клавиатури да? тоесть нелзя сделать так что праграмма работала толко с несколкими конкретними клавиатурами? я понял вас? smile 

Автор: ashotnalbandyan 2.2.2010, 09:42
спасибо smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)