Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Tietokoneen perustietoja rekisteristä

Varaosa [30.03.2007 10:39:04]

#

Joo, millä komennoilla voidaan es: HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0 rekisteristä suorittimen nimen ja tehot es. txt tiedostoon!?

Seiltä tulee tälläistä, mute en halua kaikkia tietoja vain tiettyt es: Intel(R) Celeron(R) CPU 2.66GHz tai Intel(R) Celeron(R) tai CPU
2.66GHz!?:

ES täälä scriptillä:

@Echo off
cls
REG QUERY HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0 >> Txt.txt
Exit

saan seuraavaa:

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0
    Component Information	REG_BINARY	00000000000000000000000001000000
    Identifier	REG_SZ	x86 Family 15 Model 4 Stepping 1
    Configuration Data	REG_NONE	FFFFFFFFFFFFFFFF0000000000000000
    ProcessorNameString	REG_SZ	                Intel(R) Celeron(R) CPU 2.66GHz
    VendorIdentifier	REG_SZ	GenuineIntel
    FeatureSet	REG_DWORD	0xa0073fff
    ~MHz	REG_DWORD	0xa62
    Update Signature	REG_BINARY	0000000017000000
    Update Status	REG_DWORD	0x2

Minun pitäisi saada pelkästään ProcessorNameString, mut millä mä saan sen!?

ps: Mistä rekisteristä muuten löytää näytönohjaimen ja muistien tehot (Mhz)!?

TsaTsaTsaa [30.03.2007 12:48:06]

#

C++

#include <cstdlib>
#include <fstream>
#include <string>

using namespace std;

// Vakioita
const string TIEDOSTO = "Txt.txt";
const string KOMENTO = "REG QUERY HKEY_LOCAL_MACHINE\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0 >>" + TIEDOSTO;

int main() {
   // Tehdään sama kun tossa skriptissä
   system(KOMENTO.c_str())

   // Avataan se tiedosto luettavaksi.
   ifstream tiedosto( TIEDOSTO.c_str() );

   // Tarkistetaan, saadaanko avattua
   if ( !tiedosto )
   {
      return EXIT_FAILURE;
   }

   // Sitten haetaan sieltä vain se haluttu rivi
   string rivi;
   for ( int i = 0 ; i < 7 ; ++i )
   {
      getline( tiedosto, rivi );
   }

   // Suljetaan tiedosto
   tiedosto.close();

   // Ja avataan se kirjoitettavaksi
   ofstream otiedosto(TIEDOSTO.c_str());

   // Sama tarkistus
   if (!tiedosto)
   {
      return EXIT_FAILURE;
   }

   // Kirjoitetaan haettu rivi sinne
   otiedosto << rivi;

   // Suljetaan tiedosto
   otiedosto.close();

   // Ja se ol siinä
   return EXIT_SUCCESS;
}

Nyt tiedostossa pitäisi olla ainoastaan haluttu rivi. Jos tulee väärä rivi, muuta for-silmukan lopetusehtoa (i < 7).

Ei takeita toimimisesta.

EDIT: Ja voihan olla, että sen saisi jotenkin suoraankin haettua, ettei tarvitsisi tuosta tekstitiedostosta karsia.

kooderi [30.03.2007 17:49:07]

#

Surffaat tuolle msdn:n sivulle ja opettelet sieltä asiat registryn käsittelyyn liittyvistä funkkareista:

http://msdn2.microsoft.com/en-us/library/ms724880.aspx

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta