PDA

View Full Version : Registry Change not made



NewsArchive
02-24-2011, 12:51 AM
Installer set to require admin rights
User has Windows 7, 64 bit
User has UAC off

Registry settings that I specify to be made in HKEY_LOCAL_MACHINE are not
made.

Any idea why this happens?

Mike

NewsArchive
02-24-2011, 12:51 AM
> Installer set to require admin rights
> User has Windows 7, 64 bit
> User has UAC off
>
> Registry settings that I specify to be made in HKEY_LOCAL_MACHINE are not
> made.
>
> Any idea why this happens?

Did you look under the Wow6432Node section in Regedit?

Yours is a 32 bit app running in a 64 bit environment.

IIRC, the changes would appear there - not in the 64 bit HKLM node above
it.

Charles


--
-------------------------------------------------------------------------------------------------------
Charles Edmonds
www.clarionproseries.com - "Get ProPath, make your Clarion programs ready
for Windows 7 and Vista!"
www.ezchangelog.com - "Free ChangeLog software to manage your projects!"
www.setupcast.com - "A revolutionary new publishing system for software
developers - enhanced for SetupBuilder users!"
www.pagesnip.com - "Print and Save the Web, just the way you want it!"
www.clarionproseries.com - "Serious tools for Clarion Developers"
www.ezround.com - "Round Corner HTML tables with matching Banners, Buttons
and Forms - Now with PNG support!
www.lansrad.com - "Intelligent Solutions for Universal Problems"
www.fotokiss.com - "World's Best Auction Photo Editor"
-------------------------------------------------------------------------------------------------------

NewsArchive
02-24-2011, 03:57 AM
Mike,

> Installer set to require admin rights
> User has Windows 7, 64 bit
> User has UAC off
>
> Registry settings that I specify to be made in HKEY_LOCAL_MACHINE are not
> made.
>
> Any idea why this happens?

What Charles said.

[Taken from the SetupBuilder manual]

Not long ago, 64-bit systems were a future technology reserved almost
exclusively for high-end enterprise implementations. The widespread adoption
of the 64-bit capabilities for x86 architecture (referred to as x64) by both
computer manufacturers and Microsoft, however, dramatically changed the
computing landscape. Now, 64-bit systems are a reality for both high-end
enterprise systems and small-to-midsized businesses (SMBs). 64-bit computing
is moving into the mainstream and will gradually replace 32-bit computing.
Microsoft foresees significant adoption of 64-bit-capable systems.

WOW64, short for "Windows-32-on-Windows-64," is responsible for providing
two levels of support for 32-bit legacy applications. WOW64 prevents file
and registry collisions between 32-bit and 64-bit versions of applications
by redirecting the 32-bit registry and file system accesses.

SetupBuilder Developer Edition lets you create native 32-bit, hybrid
32/64-bit, or 64-bit enabled setup programs.

Although the WOW64 subsystem doesn't support every type of application, it
does let Windows x64 run almost all 32-bit existing Windows applications.
The types of applications that aren't supported are low-level applications
such as antivirus programs or programs that attempt to directly access
system hardware. The 32-bit applications that run in the WOW64 subsystem are
executed at full speed. In fact, because of the larger data path the x64
architecture provides, many 32-bit applications will actually run faster in
the WOW64 subsystem than they would on native 32-bit hardware.

The WOW64 subsystem isolates the execution of 32-bit applications from
64-bit applications.

First, the system files in Windows x64 Edition are not present on just the
Windows\System32 folder, but split into two folders to separate the 32-bit
applications from the 64-bit applications. The WOW64 subsystem intercepts
calls from a 32-bit legacy application and redirects it to the
Windows\SysWow64 folder. If the call is from a 64-bit application, then the
call is routed to the Windows\System32 folder and does not involve the
WOW64. Microsoft has retained the name System32 for the folder, which hosts
the 64-bit system files. The "Program Files" folder on a x64 system which
stores 32-bit legacy applications is named Program Files (x86). 64-bit
applications are stored in the Program Files folder.

Second, the WOW64 subsystem also provides redirection at the Registry level.
Computers that are running an Windows x64-based operating system use a
different registry layout to handle both 32-bit and 64-bit programs. The
registry layout changes in x64 Edition versions of the Windows operating
system make sure that the programs hard-coded .dll paths, program settings,
and other parameter values are not overwritten. If the call is from a 32-bit
application, then the call to access the HKLM\Software registry hive is
intercepted by the WOW64 subsystem and redirected to the
HKLM\Software\Wow6432Node. If the call is from a 64-bit application, then it
is routed to the HKLM\ Software node.


-- Registry Redirection

To prevent 32-bit registry settings from overwriting the 64-bit registry
settings, computers that are running an x64-based version of Windows store
the settings for 32-bit programs in a new branch in the registry.

32-bit programs and 64-bit programs that are running on an x64-based version
of Windows operate in different modes and use the following sections in the
registry:

* Native mode 64-bit programs run in Native mode and access keys and values
that are stored in the following registry sub key:

HKEY_LOCAL_MACHINE\Software

* 32-bit programs run in WOW64 mode and access keys and values that are
stored in the following registry sub key:

HKEY_LOCAL_MACHINE\Software\WOW6432node

This redirection lets you maintain separate configurations for 32-bit and
64-bit processes. 64-bit programs see the 64-bit version of the registry,
while 32-bit programs see the 32-bit version.


-- File System Redirection

All 32-bit file access to the %systemroot%\system32 folder is redirected to
the %systemroot%\syswow64 folder (the %systemroot%\syswow64 that contains a
copy of 32-bit Windows system executable programs). This redirection lets a
32-bit applications load the correct 32-bit system executables rather than
attempting to access the 64-bit OS executable programs.

Hope this helps.

Friedrich

NewsArchive
03-05-2011, 01:21 AM
Thank you Friedrich,

So do I then use the Setx64 Mode item and set it to "Disable 64 bit mode"
in my installers since my software is 32 bit?

The writeup is interesting but doesn't answer the question as how to make
sure the registry entries are in the right location....or is it just
automatic.

Mike

NewsArchive
03-05-2011, 01:22 AM
Mike,

There's a little more description in the "Learning SetupBuilder Part I"
optional help file... the "64 Bits ? 32 Bits ?" and "64-Bit Registry Gotcha"
topics.

If you have a 32-bit app and create a "normal" vanilla SetupBuilder
installation, any registry reads/writes you do from your installer will
automatically be made in the 32-bit Wow6432Node. When you use regedit to
verify that your installation is doing what you think it should be, be sure
you look in the correct section of the registry.

Your 32-bit Clarion apps will also transparently read/write to the
Wow6432Node.

You could need to use the Setx64 Mode function if, for example, you needed
to write something to the actual HKLM\Software folder (perhaps you're
installing a 64-bit SQL instance but your installer and app are 32-bit).

HTH.

Jane

NewsArchive
03-05-2011, 01:24 AM
Thank you Jane.

I don't ahve a 64 bit machine but an employee does.

I fired up regedit on his computer. What do you mean by "be sure
you look in the correct section of the registry." ?

I did not find anything unusual or different...but didn't spend a lot of
time as I thought it would be obvious.

Thank you.

Michael Brooks

NewsArchive
03-05-2011, 01:26 AM
I mean what I said in my prior post.
Attached pic is from the doc I referred to.
On his machine, you won't be looking in HKLM\SOFTWARE but rather in
HKLM\SOFTWARE|Wow6432Node

Instead, it will be as shown in the pic.

Jane

NewsArchive
03-05-2011, 01:27 AM
Ok thank you for the clarification.

Michael Brooks