Ĺadny brzuch
Jak wydobyc dane o sprzecie zainstalowanym w komputerze(np. Pentium IV 3,06GHz GeForce FX...)?
Było już o tym. Skorzystaj z programu Aida32 albo Everest.
Było już o tym. Skorzystaj z programu Aida32 albo Everest.
Kolejny [ciach!]... Przecież on chce to zrobić w swoim programie ;)
Oj, też by mi się to przydało. Co do procka to bedzie trzeba w asemblerze chyba korzysając z CPUID, grafikę załatwię za pomocą :D DirectX. Ale jak sprawdzić ilość i taktowanie ramu, max rozdziałkę na monitorze i informacje nt. karty muzycznej to nie wiem. :(
Było już o tym. Skorzystaj z programu Aida32 albo Everest.
Kolejny [ciach!]... Przecież on chce to zrobić w swoim programie ;)
w asemblerze? a w c++ jakos sie nie da? Da się używając wstawki asm oczywiście, ale być może to nie jest jedyny sposób ;)
niebardzo kumam te asemblery i asm'y, moze jakies kody? Bylbym bardzo wdzieczny(tylko w c++).
funkcja cpuid:
http://4programmers....icle.php?id=441
i ogólniej o wstawkach asemblera w językach wysokiego poziomu:
http://www.win32asm....nek=jeden&nr=41
asm nie do konca jest potrzebny
pod winde sa funkcje api sluzace do pobierania takich dancych
poczytaj o funkcjach API: (win32.hlp)
ProcessorInfo();
WindowsVersion();
GetComputerName()
GetUserName()
GlobalMemoryStatus()
Co do grafiki to juz chyba trzeba jednak z poziomu DirectX
W JCL (lub JVCL - nie pamietam ;)) jest taki przykladzik jak pobrac dane o kompie
Hmm... nie znalazłem funkcji ProcessorInfo(), ale fakt, są w WinAPI funkcje do pobrania parametrów procka. Niestety nie wiem skad wytrzasnać nazwę rodziny procesora (Athlon czy np. Duron). :( Ale mój win32.hlp jest z 2000 roku więc chyba nie odnosi się do wszystkich funkcji występujących w XP.
Użytkownik Futhark edytował ten post 23 luty 2005, 13:00
Hmm... nie znalazłem funkcji ProcessorInfo()
to byla funkcja ktora ja napisalem
To moze bys podzucil kodzik?:P
w win32.hlp poczytaj o strukturze SYSTEM_INFO i OSVERSIONINFO;
Ale z tych strukturek nie możesz dowiedzieć sie z jakiej rodziny jest procek...
witam podrzucam kod (co prawda nie mojej funkcji bo ksiazkowy ale to chyba lepiej ;)
int __fastcall TFormSystemService::ProcessorInfo(bool NT, char* processor) { SYSTEM_INFO sys_info; AnsiString Processor; AnsiString Level = ""; GetSystemInfo(&sys_info); // określ rodzaj procesora – wywołanie Win32 API int value; if (NT) { switch (sys_info.wProcessorArchitecture) { case PROCESSOR_ARCHITECTURE_INTEL : Processor = "Intel"; switch (sys_info.wProcessorLevel) { case 3 : Level = "80386"; break; case 4 : Level = "80486"; break; case 5 : Level = "Pentium"; break; case 6 : value = HIBYTE(sys_info.wProcessorRevision); switch (value) { case 1 : Level = "Pentium PRO"; break; case 3,5 : Level = "Pentium 2"; break; case 6 : Level = "Celeron"; break; case 7,8,10,11 : Level = "Pentium 3"; break; } break; case 15 : Level = "Pentium 4"; break; default : Level = "nieznany"; } break; case PROCESSOR_ARCHITECTURE_ALPHA : Processor = "ALPHA"; switch (sys_info.wProcessorLevel) { case 21064 : Level = "21064"; break; case 21066 : Level = "21066"; break; case 21164 : Level = "21164"; break; default : Level = "nieznany"; } break; case PROCESSOR_ARCHITECTURE_MIPS : Processor = "MIPS"; switch (sys_info.wProcessorLevel) { case 0004 : Level = "R4000"; break; default : Level = "nieznany"; } break; case PROCESSOR_ARCHITECTURE_PPC : Processor = "PPC"; switch (sys_info.wProcessorLevel) { case 1 : Level = "601"; break; case 3 : Level = "603"; break; case 4 : Level = "604"; break; case 6 : Level = "603+"; break; case 9 : Level = "604+"; break; case 20 : Level = "620"; break; default : Level = "nieznany"; } break; default : Processor = "nieznany"; } } else // 9x { switch (sys_info.dwProcessorType) { case PROCESSOR_INTEL_386 : Processor = "Intel"; Level = "80386"; break; case PROCESSOR_INTEL_486 : Processor = "Intel"; Level = "80486"; break; case PROCESSOR_INTEL_PENTIUM : Processor = "Intel"; Level = "Pentium"; break; default: Processor = "nieznany"; } } sprintf(processor,"%s %s",Processor.c_str(),Level.c_str()); return sys_info.dwNumberOfProcessors; }
aha zmienna NT odpowiada za system operacyjny (jesli true to system z rodziny nt czyli w2k,xp,me itp)
na podstawie tego pisalem swoja funkcje.
Moja byla troche uproszczona bo potrzebowalem wiedziec tylko czy procek to Pentium
trzeba by jakiegos helpa z XP poczytac i zobaczyc jaki jest parametr dla Athlona
Durona Semprona itp (chociaz podejrzewam ze te 3 wymienione maja dokladnie ten sam, bo o ile sie nie myle to jest technologicznie ten sam rdzen).
Mam nadzieje ze pomoglem. Pozdrawiam.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Było już o tym. Skorzystaj z programu Aida32 albo Everest.
Było już o tym. Skorzystaj z programu Aida32 albo Everest.
Kolejny [ciach!]... Przecież on chce to zrobić w swoim programie ;)
Oj, też by mi się to przydało. Co do procka to bedzie trzeba w asemblerze chyba korzysając z CPUID, grafikę załatwię za pomocą :D DirectX. Ale jak sprawdzić ilość i taktowanie ramu, max rozdziałkę na monitorze i informacje nt. karty muzycznej to nie wiem. :(
Było już o tym. Skorzystaj z programu Aida32 albo Everest.
Kolejny [ciach!]... Przecież on chce to zrobić w swoim programie ;)

w asemblerze? a w c++ jakos sie nie da? Da się używając wstawki asm oczywiście, ale być może to nie jest jedyny sposób ;)
niebardzo kumam te asemblery i asm'y, moze jakies kody? Bylbym bardzo wdzieczny(tylko w c++).
funkcja cpuid:
http://4programmers....icle.php?id=441
i ogólniej o wstawkach asemblera w językach wysokiego poziomu:
http://www.win32asm....nek=jeden&nr=41
asm nie do konca jest potrzebny
pod winde sa funkcje api sluzace do pobierania takich dancych
poczytaj o funkcjach API: (win32.hlp)
ProcessorInfo();
WindowsVersion();
GetComputerName()
GetUserName()
GlobalMemoryStatus()
Co do grafiki to juz chyba trzeba jednak z poziomu DirectX
W JCL (lub JVCL - nie pamietam ;)) jest taki przykladzik jak pobrac dane o kompie
Hmm... nie znalazłem funkcji ProcessorInfo(), ale fakt, są w WinAPI funkcje do pobrania parametrów procka. Niestety nie wiem skad wytrzasnać nazwę rodziny procesora (Athlon czy np. Duron). :( Ale mój win32.hlp jest z 2000 roku więc chyba nie odnosi się do wszystkich funkcji występujących w XP.
Użytkownik Futhark edytował ten post 23 luty 2005, 13:00
Hmm... nie znalazłem funkcji ProcessorInfo()

to byla funkcja ktora ja napisalem
To moze bys podzucil kodzik?:P
w win32.hlp poczytaj o strukturze SYSTEM_INFO i OSVERSIONINFO;
Ale z tych strukturek nie możesz dowiedzieć sie z jakiej rodziny jest procek...
witam podrzucam kod (co prawda nie mojej funkcji bo ksiazkowy ale to chyba lepiej ;)
int __fastcall TFormSystemService::ProcessorInfo(bool NT, char* processor) { SYSTEM_INFO sys_info; AnsiString Processor; AnsiString Level = ""; GetSystemInfo(&sys_info); // określ rodzaj procesora – wywołanie Win32 API int value; if (NT) { switch (sys_info.wProcessorArchitecture) { case PROCESSOR_ARCHITECTURE_INTEL : Processor = "Intel"; switch (sys_info.wProcessorLevel) { case 3 : Level = "80386"; break; case 4 : Level = "80486"; break; case 5 : Level = "Pentium"; break; case 6 : value = HIBYTE(sys_info.wProcessorRevision); switch (value) { case 1 : Level = "Pentium PRO"; break; case 3,5 : Level = "Pentium 2"; break; case 6 : Level = "Celeron"; break; case 7,8,10,11 : Level = "Pentium 3"; break; } break; case 15 : Level = "Pentium 4"; break; default : Level = "nieznany"; } break; case PROCESSOR_ARCHITECTURE_ALPHA : Processor = "ALPHA"; switch (sys_info.wProcessorLevel) { case 21064 : Level = "21064"; break; case 21066 : Level = "21066"; break; case 21164 : Level = "21164"; break; default : Level = "nieznany"; } break; case PROCESSOR_ARCHITECTURE_MIPS : Processor = "MIPS"; switch (sys_info.wProcessorLevel) { case 0004 : Level = "R4000"; break; default : Level = "nieznany"; } break; case PROCESSOR_ARCHITECTURE_PPC : Processor = "PPC"; switch (sys_info.wProcessorLevel) { case 1 : Level = "601"; break; case 3 : Level = "603"; break; case 4 : Level = "604"; break; case 6 : Level = "603+"; break; case 9 : Level = "604+"; break; case 20 : Level = "620"; break; default : Level = "nieznany"; } break; default : Processor = "nieznany"; } } else // 9x { switch (sys_info.dwProcessorType) { case PROCESSOR_INTEL_386 : Processor = "Intel"; Level = "80386"; break; case PROCESSOR_INTEL_486 : Processor = "Intel"; Level = "80486"; break; case PROCESSOR_INTEL_PENTIUM : Processor = "Intel"; Level = "Pentium"; break; default: Processor = "nieznany"; } } sprintf(processor,"%s %s",Processor.c_str(),Level.c_str()); return sys_info.dwNumberOfProcessors; }
aha zmienna NT odpowiada za system operacyjny (jesli true to system z rodziny nt czyli w2k,xp,me itp)
na podstawie tego pisalem swoja funkcje.
Moja byla troche uproszczona bo potrzebowalem wiedziec tylko czy procek to Pentium
trzeba by jakiegos helpa z XP poczytac i zobaczyc jaki jest parametr dla Athlona
Durona Semprona itp (chociaz podejrzewam ze te 3 wymienione maja dokladnie ten sam, bo o ile sie nie myle to jest technologicznie ten sam rdzen).
Mam nadzieje ze pomoglem. Pozdrawiam.