Developer forums (C::B DEVELOPMENT STRICTLY!) > Contributions to C::B

WIN98/9x/others build : registry settings test

(1/8) > >>

Dear All,

Below you can find a link to an ansi build which should run on all win platforms.
More specifially on win9x/Me. The build is based on rev 1667 with a registry patch applied (see other place in this forum for more info). I would like your help/feedback on this.

The Problem :
Currently CB registers the file types in HKEY_CLASSES_ROOT, this creates 2 problems :
 - is forced upon all users of the PC (different users might want different default editors)
 - when you have a restricted user account on the win NT based (winNT/2000/XP/2003) you don't have access to this part of the registry.

Starting from win2000 MS offered to have these settings stored in the registry per user, solving the previously mentioned problems) : HKEY_CURRENT_USER\Software\Classes . So we should store the settings there, but since this is not a perfect world, this key probably does not exist on win9x, and in the case it does the question is, will that Windows version consider it and read it in ?
The applied patch will check if that user key exists, if so, it writes the settings at that position, otherwise it writes it at the old global level position.

Things I'd like from those who want to test this (especially win9x):
1) Check if that HKEY_CURRENT_USE\Software\Classes exist on your machine  :  yes/no
2) remove at HKEY_CLASS_ROOT the entries for : (see remark below)
 .cbp .workspace .c .cc .cpp .cxx .h .hh .hpp .hxx    and
CodeBlocks.cbp CodeBlocks.workspace CodeBlocks.c CodeBlocks.cpp CodeBlocks.cxx CodeBlocks.h CodeBlocks.hh CodeBlocks.hpp CodeBlocks.hxx
3) use the build you can download from the link below (contains all plug-ins and the wx dll), start it up and go to Settings menu -> Environment -> General tab and click on set now
4) check your registry to see where the ended up (the user key or again at the global level)  -> tell me about it please
5) close cb : double click on a cpp file and check if it opens in cb (tell me about it)
6) double click on another cpp file and check if it opens in cb (tell me about it)

In the case you get the error box saying it can't find the fil but actually opens it, that a whole other poblem with DDE, no idea why and how to solve it, but that exist also in the official cb).

REMARK : if you do it like this, you will also lose other information stored at the .cpp .c ... , sometimes additional programs register themselves in there for the open with menu. In case you are in this siutation and you do not want to loose this, then do the test with only the .cbp or .workspace files (but hey, we all want cb to open them ;-) )

The LINK :

Many many thanks for your help,


--- Quote from: killerbot on January 07, 2006, 04:19:46 pm ---The LINK :
--- End quote ---
Hmm... I have a bad feeling downloading from a server with that name...  :lol:

WIN98SE here.

1) yes
2) done
3) I did this, but there were some errors. Here you can see what it looked like:

The polish sentence you can see means: "Registry key is not valid" (most probably because of that double backslash)

4) the settings were at user key

5) and 6) files don't open in cb.

Hope that helps.


--- Quote from: Maciek on January 08, 2006, 12:11:45 am ---1) yes
2) done
3) I did this, but there were some errors.
4) the settings were at user key

5) and 6) files don't open in cb.

Hope that helps.

--- End quote ---
I got identical results, also on Win98SE.
It might interest you to know what I do in fact have in this section of the registry.  I have the following registry subkeys in it:

* Applications-->netscape.exe-->shell-->open-->command: (Default)="C:\Program Files\Netscape\Netscape 8\netscape.exe" "%1"
* CLSID-->(A bunch of stuff pertaining to the Windows theme in use - Recycle Bin icon, My Computer icon, etc.)
* MIME-->DataBase-->Content Type
* Software\Microsoft\MediaPlayer\Preferences: AcceptedPrivacyStatement=1Nothing that appears to be related to file extensions, unfortunately, except maybe the netscape thing (I have no idea what it means).

Hope that helps, too.


there is no need to go through this hassle with win98. You seem to forget that it's not a multi-user OS, not in the real sense of the term. HKEY_CLASSES_ROOT is used for windows 98 file associations.
Here is an enlightening read on the subject...


[0] Message Index

[#] Next page

Go to full version