🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #15640

Re: Registry key lezen in Visual C++

#15640
From: Peter S'heeren
Date: Wed, 06 Sep 2000 09:27
71 lines
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-mail
References: <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