Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Информация о чипсете, Как получить? 
:(
    Опции темы
Romero
Дата 23.4.2007, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Необходимо получить модель чипсета. Первый вопрос: какие возможны варианты, откуда это брать?
Рассмотрел наиболее популярный способ (WMI):
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=698
Разобрался, поковырял. Вопрос второй: откуда именно (из какого класса и какой инстанции) брать нужную информацию? Перебрав различные варианты, обнаружил Processor to I/O Controller с названием моего чипсета в инстанциях класса Win32_PnPEntity. Пока больше нигде не вижу. Либо киньте тапком, где еще прочесть имя чипсета, либо скажите, на любой ли машине я смогу получить его, перебрав инстанции данного класса.
PM   Вверх
Romero
Дата 23.4.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нашел еще свойство Model в классе Win32_ComputerSystem. Вроде, то что нужно.
А ссылочкой на какой-нить мануал с описанием откуда чего брать в WMI не кинете?
PM   Вверх
Yanis
Дата 23.4.2007, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

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



Ну я даже не знаю…
Romero, только никому, слышишь? Никому! smile
Зацени это.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Romero
Дата 24.4.2007, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ОК, никому не скажу. Даже и не подумал искать такую информацию в MSDN  smile 
PM   Вверх
ama_kid
Дата 24.4.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

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



Romero
Залезь еще вот сюда, там есть много всякого полезного, может и по процессору инфа подойдет...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Romero
Дата 24.4.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вопрос по использованию ISWbem.
Каким образом можно вывести интересующее меня свойство нужной инстанции нужного класса?
Как перебрать инстанции и свойства я понял, а как выбирать по заданным параметрам - не допру  smile 
PM   Вверх
Romero
Дата 24.4.2007, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот таким способом я перечисляю все свойства всех инстанций нужного класса:
Код

procedure TMainForm.GetInfo(ClassName:string);
var
  Service:ISWbemServices;
  ObjectSet:ISWbemObjectSet;
  SObject:ISWbemObject;
  PropSet:ISWbemPropertySet;
  SProp:ISWbemProperty;
  PropEnum,Enum:IEnumVariant;
  TempObj:OleVariant;
  Value:Cardinal;
begin
  Service:=SWbemLocator.ConnectServer('.','root\CIMV2','','','','',0,nil);
  SObject:=Service.Get(ClassName,wbemFlagUseAmendedQualifiers,nil);
  ObjectSet:=SObject.Instances_(0,nil);
  Enum:=(ObjectSet._NewEnum) as IEnumVariant;
  while (Enum.Next(1,TempObj,Value)=S_OK) do
    begin
      SObject:=IUnknown(TempObj) as SWBemObject;
      PropSet:=SObject.Properties_;
      PropEnum:=(PropSet._NewEnum) as IEnumVariant;
      while (PropEnum.Next(1,TempObj,Value)=S_OK) do
        begin
          SProp:=IUnknown(TempObj) as SWBemProperty;
          try
            ShowProp(SProp);
          except;
          end;
        end;
    end;
end;

Работает прекрасно.
А вот так я пытаюсь вывести нужное мне св-во заданной инстанции:
Код

procedure TMainForm.GetInfo(ClassName,InstanceName,PropertyName:string);
var
  Service:ISWbemServices;
  ObjectSet:ISWbemObjectSet;
  SObject:ISWbemObject;
  PropSet:ISWbemPropertySet;
  SProp:ISWbemProperty;
  TempObj:OleVariant;
begin
  Service:=SWbemLocator.ConnectServer('.','root\CIMV2','','','','',0,nil);
  SObject:=Service.Get(ClassName,wbemFlagUseAmendedQualifiers,nil);
  ObjectSet:=SObject.Instances_(0,nil);
  TempObj:=ObjectSet.Item(InstanceName,0);
  SObject:=IUnknown(TempObj) as SWBemObject;
  PropSet:=SObject.Properties_;
  TempObj:=PropSet.Item(PropertyName,0);
  SProp:=IUnknown(TempObj) as SWBemProperty;
  try
    ShowProp(SProp);
  except;
    Memo.Lines.Add('Error while get property value');
  end;
end;

Получаю общую ошибку при вызове GetInfo('Win32_ComputerSystem','имя_компа','Caption');
Чувствую, где-то с типами напутал  smile 

Это сообщение отредактировал(а) Romero - 24.4.2007, 16:06
PM   Вверх
Romero
Дата 28.4.2007, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Помогите разобраться с использованием! Уже всё перепробовал, только полный перебор и работает.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

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


 




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


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

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