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.
Annonceindlæg fra Infor
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; }
21. april 2008 - 23:00
#2
det virker super. Dog ikke under Vista - Hvordan kan det være?
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...
22. april 2008 - 00:14
#4
Her virker det også på Vista...
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
26. januar 2009 - 20:22
#6
Svar mig nu
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.
28. januar 2009 - 15:55
#8
fino fino, men tak for hjælpen
28. januar 2009 - 15:55
#9
lukket
Kurser inden for grundlæggende programmering