ďťż

Ł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
  •