BUG: Profiler Enabled Only Under Administrator Account in Windows NT

ID: Q224382


The information in this article applies to:


SYMPTOMS

When using Visual C++ in a Windows NT account other than the one Visual C++ was installed under, the Profile menu option under the Build menu is disabled.


CAUSE

When Visual C++ is installed, a ProfilerInstalled registry entry is created and set to true. The Visual C++ installation program places this key under HKEY_CURRENT_USER. HKEY_CURRENT_USER is specific only to the current user, which means the registry entry is not being set for other Windows NT accounts.

In earlier versions of Visual C++, installing the profiler is optional.


RESOLUTION

For all accounts to share the ProfilerInstalled registry key, it should be placed into HKEY_LOCAL_MACHINE instead of HKEY_CURRENT_USER. Add the following REG_DWORD value to HKEY_LOCAL_MACHINE under the following path:

Software\Microsoft\DevStudio\6.0\General\ProfilerInstalled = 0x1


STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.


MORE INFORMATION

To easily update the registry:

  1. Create a text file on the desktop with any name and a .reg extension.


  2. Enter the lines of text below exactly as they appear and include a blank line at the bottom of the file.
    
    REGEDIT4
    [HKEY_LOCAL_MACHINE\Software\Microsoft\DevStudio\6.0\General]
    "ProfilerInstalled"=dword:1
     


  3. Save the file and then double-click the file to merge the entries into the registry.


To verify the values have been entered correctly into the registry, you can run REGEDIT by clicking Run from the Start menu.

In addition, you can also compile and run the following Win32 console application:

#include "windows.h"
#include "stdio.h"

int main(int argc, char* argv[])
{
	HKEY hKey;
	DWORD dwValue = 1;
	int nRet = 0;
	
	if ( !SUCCEEDED(::RegOpenKeyEx(HKEY_LOCAL_MACHINE, 
		"Software\\Microsoft\\DevStudio\\6.0\\General",
		0, KEY_ALL_ACCESS, &hKey)))
	{
		printf("Error: Cannot open key\n");
		return -1;
	}
	
	if ( !SUCCEEDED(::RegSetValueEx(hKey, "ProfilerInstalled",
		0, REG_DWORD, (unsigned char *)&dwValue, 4)))
	{
		printf("Error: Cannot set value\n");
		nRet = -1;
	}

	::RegCloseKey(hKey);
	
	return nRet;
} 


REFERENCES

© Microsoft Corporation 1999, All Rights Reserved.
Contributions by Kelly Marie Ward, Microsoft Corporation

Additional query words:


Keywords          : kbPerformanceTool kbVC600bug 
Version           : winnt:6.0
Platform          : winnt 
Issue type        : kbbug 

Last Reviewed: June 3, 1999