Avatar billede disher Nybegynder
15. maj 2001 - 10:28 Der er 14 kommentarer og
1 løsning

Borland C++ Builder og registry

Jeg er igang med at lave et lille program, som skal kunne vise informationer om éns computer, Windows version og andre ting, som står i regedit. Det jeg så mangler at vide, er hvordan jeg får hentet info fra regedit.

Altså, jeg har f.eks en label, som skal vise hvilken workgroup computeren ligger i. Jeg ved allerede hvor i regedit infoen ligger, så jeg mangler bare, at kunne hente/sende info mellem mit program og registry.
Hvordan gør jeg?

M.V.H. Disher

PS. det må meget gerne skæres ud i pap for mig, da jeg er super green. (^_^)
Avatar billede makse Nybegynder
15. maj 2001 - 10:32 #1
Avatar billede borrisholt Novice
15. maj 2001 - 10:34 #2
Du ska først og fremmest
#include <registry.hpp>


Så skal du ekklære dign noger alla det her TRegistry *Registry = new TRegistry();

Så er det bare at gå i gang der fra ... Hvis du giver mig stien til din oplysning så skal jeg vide dig hvordan du får det stoppet på skærmen.

Jens B
Avatar billede casperwollesen Nybegynder
15. maj 2001 - 10:40 #3
Som Jens skriver \'TRegistry *Registry = new TRegistry();\'

Hvis du søger i Borland C++ Builder hjælp, kan du finde en del gode eksempler. Jeg har selv lige lave et program med noget lignende for et par måneder siden, og jer er også kun lige begyndt med c++ for et ½ års tid siden. Og det var ikke så svært igen.
Avatar billede casperwollesen Nybegynder
15. maj 2001 - 11:13 #4
Her er dette jeg brugte ved ikke om det kan være til en hjælp:

  TRegistry *Registry = new TRegistry;
  try
  {
    Registry->RootKey = HKEY_LOCAL_MACHINE;
    Registry->OpenKey(\"software\\\\kix32\", false);

    Edit1->Text    = Registry->ReadString(\"MDB_WKSTANAME\");
    Edit5->Text    = Registry->ReadString(\"Description\");
    ComboBox1->Text = Registry->ReadString(\"Division\");
    PCType          = Registry->ReadString(\"PCType\");
    SoftServer      = Registry->ReadString(\"SoftServer\");
    SoftShare      = Registry->ReadString(\"SoftShare\");
    SmsServer      = Registry->ReadString(\"SmsServer\");
    OfcServer      = Registry->ReadString(\"OfcServer\");
    saplogonserver  = Registry->ReadString(\"saplogonserver\");
    Location        = Registry->ReadString(\"Location\");
    HomeLocation    = Registry->ReadString(\"HomeLocation\");
    OfcFtp          = Registry->ReadString(\"OfcFtp\");
    LocalAdmGrp    = Registry->ReadString(\"LocalAdmGrp\");
    Exchange        = Registry->ReadString(\"Exchange\");
    Proxy          = Registry->ReadString(\"Proxy\");
    ProxyScr        = Registry->ReadString(\"ProxyScr\");
    Logonpath      = Registry->ReadString(\"Logonpath\");
    HomeServer      = Registry->ReadString(\"Homeserver\");
    GrpServer      = Registry->ReadString(\"GrpServer\");
    GrpShare        = Registry->ReadString(\"GrpShare\");
  }
  __finally
  {
    delete Registry;
  }

  TRegistry *Reg = new TRegistry;
  try
  {
    Reg->RootKey = HKEY_LOCAL_MACHINE;
    Reg->OpenKey(\"SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\", false);
    Edit7->Text = Reg->ReadString(\"CSDVersion\");

  }
  __finally
  {
    delete Registry;
  }
Avatar billede disher Nybegynder
15. maj 2001 - 12:09 #5
Takker for hjælpen, det virker!!!
Avatar billede disher Nybegynder
15. maj 2001 - 12:12 #6
Ups.. nu fuckede jeg... kom til at afvise! Hvordan kan jeg nu give Casper point?
Avatar billede borrisholt Novice
15. maj 2001 - 12:12 #7
bortset fra det ikke er den rigtige måde at få fat i WIndows versionen på ....

Jens B
Avatar billede borrisholt Novice
15. maj 2001 - 12:13 #8
du skal have Caper til at give et svar ...

Jens B

Avatar billede disher Nybegynder
15. maj 2001 - 12:15 #9
Hmm crap... må vente på det så!

Men det med Windows versionen virkede på Casper\'s metode! Er der andre metoder som du kan foreslå Jens?
Avatar billede disher Nybegynder
15. maj 2001 - 12:34 #10
...og hvad gør \'delete Registry;\'?

Sletter den noget (bryder mig ikke om ideen), eller gør den klar til at hente en ny omgang data fra regedit?
Avatar billede borrisholt Novice
15. maj 2001 - 12:39 #11
problemet er at hans med hans metode er at du ikke får at vide hvillken slags Windows 2000 der er Adwanced Server etc. Endvidere kan du heller ikke skælne mellem Windows 95,98 og Me ..

Til det formål skal man bruge et lille hack ...

Jens B
Avatar billede disher Nybegynder
15. maj 2001 - 13:38 #12
Jeg prøvede programmet på en 98 og ME maskine, men den kunne godt fortælle om det var en 98 eller ME
Avatar billede casperwollesen Nybegynder
15. maj 2001 - 13:41 #13
Her er et svar. Det udpluk er kun et eksempel, som jeg brugte i et lille program. Min viden er ikke så stor i C++, da jeg ikke har arbejde med det mere end et ½ år. Men det glæder da mig hvis du kan bruge det.

Avatar billede disher Nybegynder
15. maj 2001 - 14:01 #14
Bruge det kan jeg, men ved du hvordan man kan sende til registry?

Reg->WriteString(\"ProductName\",....);

Hvad mangler jeg at tilføje, for at få den til at sende tekst fra Edit1?
Avatar billede disher Nybegynder
16. maj 2001 - 13:10 #15
Nevermind... fandt ud af det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester