Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2015, 12:42   #11
sazore
Пользователь
 
Регистрация: 17.10.2015
Сообщений: 19
По умолчанию

Нашел вот код:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  Service: ISWbemServices;
  SObject: ISWbemObject;
  ObjectSet: ISWbemObjectSet;
  Enum: IEnumVARIANT;
  TempObj: OleVariant;
  Value: Cardinal;
  PropSet: ISWbemPropertySet;
  PropEnum: IEnumVARIANT;
  SProp: SWbemProperty;
begin
  SWbemLocator1 := CoSWbemLocator.Create();
  Service := SWbemLocator1.ConnectServer('.', 'root\CIMV2', '', '', '',
    '', 0, nil);
  SWbemLocator1 := nil;
  SObject := Service.Get('Win32_Fan', 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;
      Memo2.Lines.Add(SProp.Name);
    end;
  end;
end;
Получает список свойств для Win32_Fan но как теперь из этих свойств получить нужную информацию (Имена устройств,rpm устройств)?
sazore вне форума Ответить с цитированием
Старый 18.10.2015, 12:55   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Статейку мою не хочешь читать? А там это написано.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.10.2015, 13:02   #13
sazore
Пользователь
 
Регистрация: 17.10.2015
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Статейку мою не хочешь читать? А там это написано.
читал, но что-то не разобрался...
sazore вне форума Ответить с цитированием
Старый 18.10.2015, 13:24   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тогда рано тебе получать такие данные.
Тебе будет проще нанять фрилансера.
Или изучай основы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.10.2015, 13:42   #15
sazore
Пользователь
 
Регистрация: 17.10.2015
Сообщений: 19
По умолчанию

Код:
 WMIServices := CoSWbemLocator.Create.ConnectServer('.', 'root\cimv2','', '', '', '', 0, nil);
  Root  := WMIServices.ExecQuery('Select * FROM Win32_Fan','WQL', 0, nil);
  for I := 0 to Root.Count - 1 do
  begin
    Item := Root.ItemIndex(I);
      memo2.Lines.Add('DesiredSpeed                        '+VarToStr(Item.DesiredSpeed));
      memo2.Lines.Add('');
  end;
Вот вроде бы все правильно, но не чего не возвращает.
sazore вне форума Ответить с цитированием
Старый 18.10.2015, 19:54   #16
sazore
Пользователь
 
Регистрация: 17.10.2015
Сообщений: 19
По умолчанию

Что-то косячный какой-то этот WMI, весь день инет рыл по этому поводу и у всех он не работает. Как можно еще определить температуру и RPM куллеров?
sazore вне форума Ответить с цитированием
Старый 18.10.2015, 20:27   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ты ошибаешься. Он работает.
Безымянный.jpg
Только данные с кулера снять не всегда может. И зависит это скорее всего от самой материнской платы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.10.2015, 21:04   #18
sazore
Пользователь
 
Регистрация: 17.10.2015
Сообщений: 19
По умолчанию

Прочитал в документации по АИДЕ что она может обмениваться информацией между приложениями, один из способов shared memory (совместно используемая память)

Цитата:
One of the most common ways to share information between Windows applications is shared memory. The
AIDA64 hardware monitoring module uses the shared memory “AIDA64_SensorValues”.
The shared memory content is a long string value ending in a 0x00 char, making it a classic PChar or char*.
The string is made of XML tags, but it is not a complete XML document. It includes all temperature, cooling
fan and voltage values AIDA64 can measure. Temperatures are always in Celsius, even if Fahrenheit is
selected in the Preferences menu. Sensor value labels are always displayed in English, they are not localized.
The buffer size (the size of the shared memory block) has to be at least 10 KB. A typical buffer size is around
1 to 3 KB, but for Abit MicroGuru 2005 based boards, for example, it can be a lot more.
В документации также имеется вот эта функция:

Код:
Const
sharedmem_name = 'AIDA64_SensorValues';
Function ExtApp_SharedMem_ReadBuffer(bu:PChar;bu_size:DWord):Boolean;
Var
mappedData : PChar;
th : THandle;
Begin
Result:=False;
th:=OpenFileMapping(FILE_MAP_READ,False,sharedmem_name);
If th<>INVALID_HANDLE_VALUE Then
Begin
mappedData:=MapViewOfFile(th,FILE_MAP_READ,0,0,0);
If mappedData<>Nil Then
Begin
StrLCopy(bu,mappedData,bu_size);
If UnmapViewOfFile(mappedData) Then Result:=True;
End;
CloseHandle(th);
End;
End;
но не пойму как с ней работать. Объясните пожалуйста.
sazore вне форума Ответить с цитированием
Старый 18.10.2015, 21:22   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Насколько я понимаю:
Код:
const n=3000;
var s:array[1..n] of char;
begin
 ExtApp_SharedMem_ReadBuffer(@s,n);
 Теперь в s ответ от Аиды.
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.10.2015, 21:29   #20
sazore
Пользователь
 
Регистрация: 17.10.2015
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Насколько я понимаю:
Код:
const n=3000;
var s:array[1..n] of char;
begin
 ExtApp_SharedMem_ReadBuffer(@s,n);
 Теперь в s ответ от Аиды.
end;
Вот что в переменной....
Изображения
Тип файла: png 2015-10-18_212815.png (1.4 Кб, 42 просмотров)
sazore вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить данные с другой странице Terti JavaScript, Ajax 2 15.10.2012 11:03
Как получить данные с чужой программы в свою? pepesina Общие вопросы Delphi 21 13.07.2012 16:24
Получить информацию от другой программы prod87 Общие вопросы Delphi 1 27.10.2010 17:34
Как перенести данные из одного модуля программы в другой? Velmok Общие вопросы C/C++ 1 20.09.2010 13:13
Как программно прочитать данные из едита другой программы xakkkkker Общие вопросы Delphi 1 15.03.2009 12:13