Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> информация об установленном в ПК оборудовании, жесткого диска, видеокарты и т.д. 
:(
    Опции темы
maq
Дата 3.1.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Как можно получить информацию об установленных в ПК оборудовании и их модели? Например, модель и емкость жесткого диска, видеокарты, оперативной памяти и т.д.
PM MAIL   Вверх
CrackMe
Дата 12.1.2009, 04:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 12.1.2009

Репутация: нет
Всего: нет



слишком объёмный вопрос. решений много.

о процессоре можно получить инфу инструкцией CPUID (в манах описывается что она куда выдаёт с разными eax на входе). скорость примерная считается двумя rdtsc с паузой. хотя всё это есть в реестре.

информация о BIOS есть также в реестре, хотя в NT системах можно получить доступ к device/physicalmemory и читать всё напрямую.

память - GlobalMemoryStatus[Ex].

HDD - GetVolumeInformation.

информация о PnP (в т.ч. CPU и HDD) устройствах получается функцией SetupDiGetDeviceRegistryProperty и другими из setupapi.h.
PM MAIL   Вверх
xvr
Дата 12.1.2009, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Есть такое волшебное слово: WMI
Пример:
Код

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

Set colSettings = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colSettings 
    Wscript.Echo "Available Physical Memory: " & objOperatingSystem.FreePhysicalMemory
Next

Set colItems = objWMIService.ExecQuery("Select * from Win32_PCMCIAController")
Wscript.Echo "Number of PCMCIA slots: " & colItems.Count

Set colSettings = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem")
For Each objComputer in colSettings 
    Wscript.Echo "System Name: " & objComputer.Name
    Wscript.Echo "User name: " & objComputer.UserName
    Wscript.Echo "Total Physical Memory: " &  objComputer.TotalPhysicalMemory
    Wscript.Echo "Number of Processors: " & objComputer.NumberOfProcessors
Next

Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
For Each objItem in colItems
    Wscript.Echo "Processor Id: " & objItem.ProcessorId
    Wscript.Echo "Maximum Clock Speed: " & objItem.MaxClockSpeed
Next

Set colChassis = objWMIService.ExecQuery ("Select * from Win32_SystemEnclosure")
For Each objChassis in colChassis
    For Each objItem in objChassis.ChassisTypes
        Wscript.Echo "Chassis Type: " & objItem
    Next
Next

Wscript.Echo

Set colSMBIOS = objWMIService.ExecQuery ("Select * from Win32_SystemEnclosure")
For Each objSMBIOS in colSMBIOS
    Wscript.Echo "Part Number: " & objSMBIOS.PartNumber
    Wscript.Echo "Serial Number: " & objSMBIOS.SerialNumber
    Wscript.Echo "Asset Tag: " & objSMBIOS.SMBIOSAssetTag
Next

Wscript.Echo

Set colItems = objWMIService.ExecQuery( "Select * from Win32_USBHub")
For Each objItem in colItems
    Wscript.Echo "Device ID: " & objItem.DeviceID
    Wscript.Echo "PNP Device ID: " & objItem.PNPDeviceID
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo
Next

Wscript.Echo "CD-ROMs:"
Set colItems = objWMIService.ExecQuery( "Select * from Win32_CDROMDrive")
For Each objItem in colItems
    Wscript.Echo "Device ID: " & objItem.DeviceID
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "Name: " & objItem.Name 
Next
 сохранить в файл с расширением vbs, запускать через cscript <file>.vbs
PM MAIL   Вверх
CrackMe
Дата 13.1.2009, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 12.1.2009

Репутация: нет
Всего: нет



подфорум посвящён API кодингу.

Это сообщение отредактировал(а) CrackMe - 13.1.2009, 06:20
PM MAIL   Вверх
maq
Дата 14.2.2009, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Поясню:
нужна информация о модели жесткого диска для использования в VS C++.

PM MAIL   Вверх
xvr
Дата 14.2.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Цитата(maq @ 14.2.2009,  16:00)
Поясню:
нужна информация о модели жесткого диска 

Код

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set drvs = objWMIService.ExecQuery ("Select * from Win32_DiskDrive")
For Each drv in drvs
    Wscript.Echo "Name: " & drv.Model
Next


Цитата

для использования в VS C++.
 WMI in C++

CrackMe - то, что подфорум посвещен API кодингу еще не значит, что те, кто его читают не разбираются ни в чем другом  smile Для справки - GetObject в VB создает ActiveX объект, все остальное делается через его интерфейсы. ActiveX - это вполне 'API кодинг'

Кстати, GetVolumeInformation выдает информацию о логическом диске, и она не имеет ничего общего с физическим устройством.


PM MAIL   Вверх
maq
Дата 20.2.2009, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



xvr, спасибо! Получилось.

И еще вопрос вдогонку, а можно ли также получить Product Number для жесткого диска (модель я уже получил) - уникальный для каждой единицы ("штуки") жесткого диска?
PM MAIL   Вверх
xvr
Дата 20.2.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Цитата(maq @ 20.2.2009,  14:23)
xvr, спасибо! Получилось.

И еще вопрос вдогонку, а можно ли также получить Product Number для жесткого диска (модель я уже получил) - уникальный для каждой единицы ("штуки") жесткого диска?

Насколько я помню S/N в чистом виде там не было, правда там есть PNPDeviceID, там входит частью нечто похожее
Вообще, скачай с MS WMI Tools, там есть браузер WMI, можно посмотреть что и где есть

Во, в Win32_PhysicalMedia (Tag = '\\.\PHYSICALDRIVE0' = Win32_DiskDrive.DeviceID) есть поле SerialNumber (у меня там лежит '3JT4FGXV        ')

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1201 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.