Missing items in cm_OpenControls with Windows 7 (x64)

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: white, Hacker, petermad, Stefan2

Post Reply
j
Member
Member
Posts: 124
Joined: 2009-04-13, 19:49 UTC

Missing items in cm_OpenControls with Windows 7 (x64)

Post by *j »

When opening the control panel virtual folder ([face=courier]cm_OpenControls[/face]), there is only a "QuickTime" and a "NVIDIA PhysX" item visible.
The categories seem to be determined properly when going to the parent "[face=courier]\\Control Panel[/face]" folder, but all sub-folders are empty (besides the two CPLs mentioned above).

The problem exists with the 7.50 betas (also in b4) and 7.04a of Total Commander, so I guess it is because I am using the 64 bit variant of Windows 7 and TC is missing some entries.

How does TC determine the installed CPLs, so we can trace this problem down?

Thank you.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

TC is a 32-bit program, so it will see only the cpls in 32-bit system32 dir. You need to open control panel via Windows start menu to see the 64-bit modules.
Author of Total Commander
https://www.ghisler.com
j
Member
Member
Posts: 124
Joined: 2009-04-13, 19:49 UTC

Post by *j »

In the system32 folder are several cpl files (all 32 bit):

Code: Select all

wscui.cpl
sysdm.cpl
telephon.cpl
timedate.cpl
ncpa.cpl
powercfg.cpl
mmsys.cpl
inetcpl.cpl
intl.cpl
irprops.cpl
joy.cpl
main.cpl
desk.cpl
Firewall.cpl
hdwwiz.cpl
appwiz.cpl
bthprops.cpl
infocardcpl.cpl
PhysX.cpl
Besides these are in the (virtual) Sysnative folder (with some overlap where the CPLs are apparently available for both architectures):

Code: Select all

wscui.cpl
timedate.cpl
TabletPC.cpl
telephon.cpl
sysdm.cpl
ncpa.cpl
powercfg.cpl
mmsys.cpl
main.cpl
joy.cpl
inetcpl.cpl
intl.cpl
irprops.cpl
hdwwiz.cpl
desk.cpl
Firewall.cpl
collab.cpl
bthprops.cpl
appwiz.cpl
infocardcpl.cpl
nvcpl.cpl
I still don't quite understand how Total Commander queries those items. Why is it significant, that the CPLs are 32 or 64 bits? After all they can just be executed and the operating system can decide what to do. I can just start both architectural types of CPLs within TC when running them directly. Or are the names obtained by loading them into memory and executing code? Isn't it just a matter of accessing the registry to get a list of registered CPLs?

Thank you.
#84251
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

TC doesn't look for the CPLs by itself. It just enumerates the "Control Panel" virtual folder for its contents. You will probably get the same results in 32-bit explorer.exe...
Author of Total Commander
https://www.ghisler.com
j
Member
Member
Posts: 124
Joined: 2009-04-13, 19:49 UTC

Post by *j »

Thanks. I understand the implications now.
The registry redirection for 32 bit applications under 64 bit Windows makes "all the trouble".

Now we only need a 64 bit TC.... :wink:

P.S.: Using tcmdx64.exe to enumerate the virtual folder is no reasonable option I suppose...?!
#84251
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Sorry, you will have to live with the system control panel.
Author of Total Commander
https://www.ghisler.com
Post Reply