Avatar billede the_saint Nybegynder
22. februar 2005 - 12:53 Der er 9 kommentarer og
1 løsning

Hente data fra registrerings databasen

SKal hente data fra registrerings databasen, med nedenstående kode, alt andet end RegGetValue virker... Den siger at funktionen ikk findes :(

Hvad gør jeg forkert?         

int intLength;
                HKEY hk;
                DWORD dwDisp;
                RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Duri", 0,NULL,REG_OPTION_NON_VOLATILE, KEY_WRITE,NULL, &hk, &dwDisp);
                if(dwDisp == REG_OPENED_EXISTING_KEY)
                {
                        //Smid værdierne ind i felterne og classen..
                        RegGetValue(hk,"LogInterval",NULL,RRF_RT_ANY,NULL, LogInterval, intLength);
                }
                else
                {
                        strcpy(LogInterval, "1");
                        RegSetValueEx(hk,"LogInterval",0,REG_SZ,LogInterval,strlen(LogInterval) + 1);
                }
                RegCloseKey(hk);
Avatar billede arne_v Ekspert
22. februar 2005 - 12:56 #1
Jeg plejer at bruge RegQueryValueEx
Avatar billede the_saint Nybegynder
22. februar 2005 - 12:57 #2
Kan du give mig et eks. på den?
Be be be :D
Avatar billede arne_v Ekspert
22. februar 2005 - 12:57 #3
Avatar billede arne_v Ekspert
22. februar 2005 - 12:58 #4
#include <windows.h>
#include <stdio.h>
#include <string.h>

void getinfo(char *key, char *name, char *info)
{
  HKEY hk;
  if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, key, 0, KEY_READ, &hk) == ERROR_SUCCESS)
  {
    DWORD valuelen,type;
    BYTE value[1024];
    valuelen = sizeof(value);
    if(RegQueryValueEx(hk, name, NULL, &type, value, &valuelen) == ERROR_SUCCESS)
    {
        strcpy(info,(char *)value);
    }
  }
  RegCloseKey(hk);
}

int main(int argc, char **argv)
{
    char info[12345];
    strcpy(info,"");
    getinfo("SOFTWARE\\Microsoft\\Windows\\CurrentVersion", "DevicePath", info);
    printf("%s\n", info);
    return 0;
}
Avatar billede the_saint Nybegynder
22. februar 2005 - 13:33 #5
HKEY hk;
                DWORD dwDisp,dwLength = 4;
                RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Duri", 0,NULL,REG_OPTION_NON_VOLATILE, KEY_WRITE,NULL, &hk, &dwDisp);
                if(dwDisp == REG_OPENED_EXISTING_KEY)
                {
                        //Smid værdierne ind i felterne og classen..
                        //RegGetValue(hk,"LogInterval",NULL,RRF_RT_ANY,NULL, LogInterval, intLength);
                        RegQueryValueEx(hk,"LogInterval",NULL,NULL,LogInterval,&dwLength);
                }
                else
                {
                        strcpy(LogInterval, "1");
                        RegSetValueEx(hk,"LogInterval",0,REG_SZ,LogInterval,strlen(LogInterval) + 1);
                }
                RegCloseKey(hk);

Sådan ser min kode ud, LogInterval indeholder "" (Ingenting) også efter funktionen er kørt..
Noget galt?
Avatar billede the_saint Nybegynder
22. februar 2005 - 13:35 #6
char LogInterval[4]; <- Definationen af LogInterval..
Avatar billede the_saint Nybegynder
22. februar 2005 - 21:40 #7
Den retunere en LONG 5...
Access denied... Hvad er problemet?
Avatar billede the_saint Nybegynder
23. februar 2005 - 00:19 #8
Fik løst det, arne_v smider du et svar?
Avatar billede the_saint Nybegynder
23. februar 2005 - 20:00 #9
Så tager jeg dem sgu selv ;)
Avatar billede arne_v Ekspert
23. februar 2005 - 20:08 #10
jeg havde slet ikke set at var kommet videre
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