Avatar billede _et Praktikant
20. april 2008 - 21:38 Der er 8 kommentarer og
1 løsning

hente string array fra reg databasen

Jeg skal have hentet noget data fra registerings databasen.

Det handler om nøglerne i
HKEY_LOCAL_MACHINE/HARDWARE/DEVICEMAP/SERIALCOMM
De skal bruges til at udvælge bestemte porte ud fra type.

Jeg har brug for noget i stil med

CSting[20][3] nøgler;

void getKeys(&nøgler)
{
.....
}

Jeg kan ikke gennemskue hvordan det virker - Æv

Det skal kunne køre i en win32 c++ 6.0 app.
Avatar billede bertelbrander Novice
21. april 2008 - 00:42 #1
Måske noget i stil med nedenstående.
Det burde virke selv med antikke compilere som VS 6.0

#include <windows.h>
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <iterator>

bool ReadFromReg(HKEY StandardHKey, char sti[], std::vector<std::string>& aStrings)
{
  HKEY SpecifikHandle;
  if(RegOpenKey(StandardHKey, sti, &SpecifikHandle) == ERROR_SUCCESS)
  {
      int idx;
      for(idx = 0; idx < 100; idx++)
      {
        std::stringstream ss;
        ss << "\\Device\\Serial";
        ss << idx;
        char Buffer[1024] = "";
        DWORD Size = sizeof(Buffer);
        DWORD Type = REG_SZ;
        if(RegQueryValueEx(SpecifikHandle, ss.str().c_str(), 0, &Type, (BYTE *)Buffer, &Size) != ERROR_SUCCESS)
        {
            RegCloseKey(SpecifikHandle);
            return true;
        }
        aStrings.push_back(Buffer);

      }
  }
  return false;
}

int main(void)
{
  std::vector<std::string> strings;
  ReadFromReg(HKEY_LOCAL_MACHINE, "HARDWARE\\DEVICEMAP\\SERIALCOMM", strings);
  std::copy(strings.begin(), strings.end(), std::ostream_iterator<std::string>(std::cout,"\n"));
  return 0;
}
Avatar billede _et Praktikant
21. april 2008 - 23:00 #2
det virker super. Dog ikke under Vista - Hvordan kan det være?
Avatar billede bertelbrander Novice
21. april 2008 - 23:03 #3
Måske fordi Vista er et mærkeligt OS?
Har du checket om nøglerne findes der?
Jeg kan godt fyre op under min Vista maskine lidt senere når jeg får tid...
Avatar billede bertelbrander Novice
22. april 2008 - 00:14 #4
Her virker det også på Vista...
Avatar billede _et Praktikant
22. april 2008 - 08:48 #5
Det virker også her. Det var fordi den specefikke nøgle jeg kiggede efter ikke fandtes - som du foreså.

Kom med et svar. og tak for hjælp
Avatar billede _et Praktikant
26. januar 2009 - 20:22 #6
Svar mig nu
Avatar billede bertelbrander Novice
26. januar 2009 - 21:51 #7
Jeg samler ikke på point. Lav selv et svar og accepter det, så bliver spørgsmålet lukket og du får dine point tilbage.
Avatar billede _et Praktikant
28. januar 2009 - 15:55 #8
fino fino, men tak for hjælpen
Avatar billede _et Praktikant
28. januar 2009 - 15:55 #9
lukket
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