|
| RegQueryValueEx Fra : Ronny Olsen |
Dato : 11-03-01 15:30 |
|
Hej NG
hvordan læsser jeg en key fra registrerings databasen når det er
Default/Standard som keyname?
hvad er galt med nedenstående eks.?
// her er fejl i åbning af key default
char *GetMailClient(void){
// win2000 us HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail (Default) Outlook
Express
// win98 dk HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail (Standard)
Outlook Express
char mail[50];
char *ptr;
HKEY hKey; // Erklæring af handle
int test;
unsigned long int BufLen;
test=RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Clients\\Mail", 0,
KEY_QUERY_VALUE, &hKey);
// hertil OK
if(test==0) test=RegQueryValueEx(hKey, "(Default)", NULL, NULL, (LPBYTE)
mail, &BufLen);
// her er test = 2, pga nøglen default ikke kan åbnes
if(test) mail[0]='\0'; // laver en tom string ved fejl
RegCloseKey(hKey); // frigør handlen
ptr=mail;
return ptr;
}
---------------------------------------
// dette virker som det skal,
char *GetDefaultDriver(void){
// win2000 us HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database
Engine\Settings\SYSTEM\INIT DEFAULT DRIVER PARADOX
char driver[50];
char *ptr;
HKEY hKey; // Erklæring af handle
int test;
unsigned long int BufLen;
test=RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Borland\\Database
Engine\\Settings\\SYSTEM\\INIT", 0, KEY_QUERY_VALUE, &hKey);
if(test==0) test=RegQueryValueEx(hKey, "DEFAULT DRIVER", NULL, NULL,
(LPBYTE) driver, &BufLen);
if(test) driver[0]='\0'; // laver en tom string ved fejl
RegCloseKey(hKey); // frigør handlen
ptr=driver;
return ptr;
}
Med venlig hilsen
Ronny Olsen
| |
Claus Brinch Jensen (13-03-2001)
| Kommentar Fra : Claus Brinch Jensen |
Dato : 13-03-01 05:59 |
|
Du sender blot en tom streng for navnet på værdien i stedet for "(Default)".
Der er ikke nogen egentlig værdi, der hedder "(Default)", det er blot en
pseudo-værdi som Registry editoren viser.
Claus
"Ronny Olsen" <rjo@danbbs.dk> wrote in message
news:N6Mq6.155$ou4.4368@news.get2net.dk...
> Hej NG
>
>
> hvordan læsser jeg en key fra registrerings databasen når det er
> Default/Standard som keyname?
> hvad er galt med nedenstående eks.?
>
> // her er fejl i åbning af key default
> char *GetMailClient(void){
> // win2000 us HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail (Default)
Outlook
> Express
> // win98 dk HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail (Standard)
> Outlook Express
> char mail[50];
> char *ptr;
> HKEY hKey; // Erklæring af handle
> int test;
> unsigned long int BufLen;
> test=RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Clients\\Mail", 0,
> KEY_QUERY_VALUE, &hKey);
>
>
> // hertil OK
> if(test==0) test=RegQueryValueEx(hKey, "(Default)", NULL, NULL,
(LPBYTE)
> mail, &BufLen);
> // her er test = 2, pga nøglen default ikke kan åbnes
>
>
>
> if(test) mail[0]='\0'; // laver en tom string ved fejl
> RegCloseKey(hKey); // frigør handlen
> ptr=mail;
> return ptr;
> }
> ---------------------------------------
>
> // dette virker som det skal,
> char *GetDefaultDriver(void){
> // win2000 us HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database
> Engine\Settings\SYSTEM\INIT DEFAULT DRIVER PARADOX
> char driver[50];
> char *ptr;
> HKEY hKey; // Erklæring af handle
> int test;
> unsigned long int BufLen;
> test=RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Borland\\Database
> Engine\\Settings\\SYSTEM\\INIT", 0, KEY_QUERY_VALUE, &hKey);
> if(test==0) test=RegQueryValueEx(hKey, "DEFAULT DRIVER", NULL, NULL,
> (LPBYTE) driver, &BufLen);
> if(test) driver[0]='\0'; // laver en tom string ved fejl
> RegCloseKey(hKey); // frigør handlen
> ptr=driver;
> return ptr;
> }
>
> Med venlig hilsen
> Ronny Olsen
>
>
>
| |
Ronny Olsen (13-03-2001)
| Kommentar Fra : Ronny Olsen |
Dato : 13-03-01 21:17 |
|
"Claus Brinch Jensen" <cbj@email.dk> wrote in message
news:98k9hp$9q5$1@news.cybercity.dk...
> Du sender blot en tom streng for navnet på værdien i stedet for
"(Default)".
> Der er ikke nogen egentlig værdi, der hedder "(Default)", det er blot en
> pseudo-værdi som Registry editoren viser.
>
> Claus
>
Hej Claus!
mange tak det virker, har du et link til et sted hvor du har fundet ud af
det.
Ronny Olsen
| |
|
|