Witam!
Od dłuższego czasu próbuje napisać aplikację, która pobierałaby temperaturę mojego procesora (AMD Athlon XP 2000+), płyty głównej Asus A7V600 oraz obrotów wiatraczka, itp. Niestety, nic nie wymyśliłem, a przykłady, które były prezentowane na forum, oparte na ZlPortio - u mnie nie działają. Zatem, pomyslałem sobie, że zrobię to drogą okrężną - mianowicie wraz z płytą Asusa dostarczana jest aplikacja AsusProbe - podaje ona wszystkie parametry, które mnie interesują. Zatem chcę odczytać te dane. Pytanie jak. Chcę skorzystać z funkcji pobierających tekst z innych okien Windows. I tak:
Potrafię pobrać uchwyt do okna głównego:
var
h : longint;
h:=FindWindow(pchar('TMainForm'),'Asus Probe 2');
label4.Caption:=inttostr(h)+' '+GetText(h);
funkcja GetText pobiera tresc:
function GetText(WindowHandle: hwnd):string;
var
txtLength : integer;
buffer: string;
begin
TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0);
txtlength := txtlength + 1;
setlength (buffer, txtlength);
sendmessage (WindowHandle,wm_gettext, txtlength, longint(@buffer[1]));
result := buffer;
end;
Tyle, że tutaj nic nie ma ciekawego do pobrania...
Ale, program AsusProbe ma tak zrobione, ze wszystkie informacje, w formie podsumowania przedstawione są w głównym oknie w oknie o klasie : TBgListView.
Zatem jak pobrać dane z poszczególnych komórek tego BgListView?
Wyniki, które mnie interesuja są też wyswietlane na kolejnych, bardziej szczegółowych zakładkach programu. Np. temperatura procesora wyswietlana jest w oknie o klasie : TMonitorForm (tytuł okna: MonitorForm) na komponencie, którego klasa okna to : TStaticText, zaś tytuł to interesujące mnie dane, czyli np. "48/112"9temp. procka).
Zatem, jak pobrać te dane, bo gdy wstawiam to to funkcji FindWindow to mi nic nie zwraca(konkretnie to 0)... Czy to trzeba jakoś wylistować wszystkie klasy, któe są pochodnymi klasy głównej TMainForm(która mnie akurat nie intersuje)? Wszytkie interesujące mnie dane są w oknie TMonitorForm, w kontrolkach o klasach TStaticText(pierwsza dla temp procka, druga dla temp plyty glownej, trzecia wiatraczka itd...). Jak zatem pobrac uchwyty do tych kotrolek, by przejąć ich napisy?
Mam nadzieję, że zrozumiale napisałem. Prosze o pomoc.
Pozdr.
Pepe
Uwaga: Dane o nazwie klasy okna pochodzą z programu "Grzebacz Okienkowy", uzytkownika :"Szymek".