Article View: be.comp.programming
Article #15640Re: Registry key lezen in Visual C++
From: Peter S'heeren
Date: Wed, 06 Sep 2000 09:27
Date: Wed, 06 Sep 2000 09:27
71 lines
2802 bytes
2802 bytes
Beste
Vergeet MFC en de SHELL API, gebruik gewone Win32 API functies. De volgende
functie gebruik ik altijd om de registry te lezen. Veel plezier.
Peter S'heeren
bool QueryRegistry (char *Key, char *Value, DWORD *Type, byte *Data, DWORD
*Len)
{
HKEY hKey;
LONG D;
D = RegOpenKeyEx(HKEY_LOCAL_MACHINE,Key,0,KEY_READ,&hKey);
if (D != ERROR_SUCCESS) return false;
D = RegQueryValueEx(hKey,Value,NULL,Type,Data,Len);
if (D == ERROR_SUCCESS)
// Always terminate data in case of an open ASCIIZ string
Data[*Len] = 0;
RegCloseKey(hKey);
return (D == ERROR_SUCCESS); // Convert BOOL to bool
}
...
// example
void fn ()
{
...
ok =
QueryRegistry(""Software\\MyCompany\\MyProduct","Program",&KeyType,(byte*)my_str,&QueryLen);
...
}
Emmanuel Lambert wrote:
>
> Hi,
>
> Ik wil de volgende Registry Key uitlezen vanuit Visual C++ :
> HKEY_LOCAL_MACHINE\\SOFTWARE\\SPEETHON\PRODUCT
>
> Ik heb er al een halve dag op zitte zoeken, maar ik krijg steeds de
> foutmelding :
> "invalid path" or "file not found".
>
> Wie kan me helpen. Hieronder is het stukje source code dat ik gebruik.
>
> Bedankt
> Emmanuel Lambert
>
> ----------------------------------------------------------------------------
> ---------------------------------------------------------
> RegResult=SHRegOpenUSKey("HKEY_LOCAL_MACHINE\\SOFTWARE\\SPEETHON",
> KEY_READ, REG_NONE, &key, TRUE);
> if (RegResult != ERROR_SUCCESS)
> {
> AfxMessageBox("Fatal error reading HKEY_LOCAL_MACHINE\\SOFTWARE\\SPEETHON
> in registry !");
> char error[100];
> FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, RegResult, 0, error,
> 1000, NULL);
> AfxMessageBox(error);
> exit(0);
> }
> AfxMessageBox("OK");
Technical Details
Message-ID:
<39B60D99.3C341234@pimc.be>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!sn-xit-uk!supernews.com!193.162.153.122.MISMATCH!news.tele.dk!134.222.94.5!npeer.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mailReferences:
<967660253.838996@marvin>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fcea4,9c96990862087c54 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2000-09-06 02:27:41 PST Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!sn-xit-uk!supernews.com!193.162.153.122.MISMATCH!news.tele.dk!134.222.94.5!npeer.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mail Message-ID: <39B60D99.3C341234@pimc.be> From: Peter S'heeren <petersh@pimc.be> X-Mailer: Mozilla 4.74 [en] (Win98; U) X-Accept-Language: nl-BE,en MIME-Version: 1.0 Newsgroups: be.comp.programming Subject: Re: Registry key lezen in Visual C++ References: <967660253.838996@marvin> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 71 Date: Wed, 06 Sep 2000 09:27:22 GMT NNTP-Posting-Host: 193.74.115.5 X-Complaints-To: abuse@Belgium.EU.net X-Trace: nreader1.kpnqwest.net 968232442 193.74.115.5 (Wed, 06 Sep 2000 11:27:22 MET DST) NNTP-Posting-Date: Wed, 06 Sep 2000 11:27:22 MET DST Organization: KPNQwest customer news service