Assignment:

The RegFind utility makes search in the system register and all of found contents save into the reg-file, created by it.

Why it's written:

Motive on writing it to me that circumstance, that the system register is "not normalized data base" and in case of necessity of search results in constant use of F3 key... and it has tired me, ...as so I have decided to write the given utility :-)

Restrictions:

It was written on WinNT 4.0 and is tested on Win2000, Windows XP (English) also, ... but on other OS was not tested :-( therefore there can be problems on other OS... 

During creation of this utility under Windows NT 4.0 Server I with surprise have detected, that a part of keys / values of the register are inaccessible on reading from the program, therefore for prevention of attempts of reading of inaccessible keys the following was made:
   - In RegFind.ini was add the section [ExcludeKeys] of the list of such keys
   - If in execution time the unreadable keys will be detected,  will be created the ExcludeKeys.txt file, containing list of such keys.
   - If on termination of the utility you will detect the ExcludeKeys.txt file, it should be manually added as contents in section [ExcludeKeys] of the RegFind.ini file (I not make this by program, on ideological reasons :-).
   - Thus, it is necessary to have in view of, that the RegFind utility excludes from process of search the list of keys located in the section [ExcludeKeys] of the RegFind.ini file, in other words, it is necessary always to have in view that the search is carried out not in all register, but only in accessible on reading part of it's.
  - It is necessary also to have in view, that the ExcludeKeys.txt file will be generated completely only on completion "not interrupted" search of something. 
   - At last, under WinNT 4.0 & Win2000 there are two "not readable" of keys containing the user SID:
HKEY_USERS\<SID>\Software\Microsoft\Protected Storage System Provider\<SID>
HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider\<SID>
... I have "drawn" the method CRegKeyTools::GetUserSID() generating the user SID, also could form these two keys dynamically, however, being afraid dependence from OS, I have not become to do it. In other words, directly now in the utility contents of section [ExcludeKeys] in the RegFind.ini file is depends as well on the user.

Further, I was interested only by string-type datas of the register, and in the present moment the search is made only among string values.

Source code:

Thus RegFind is so "not universal", that I have decided to place also the source code of it, so that you can "to twist" it at own discretion. As I hope, that it's have enough of the comment in of a code :-) It's necessary to have in view, that it's writing by MS VC ++ 6.0 SP5 VS6, while the application is created by means ATL/WTL 3.1 Wizard.

Date of creation: 01/15/2002

/////////////////////////////////////////////
Update list:

v1,0,0,2  04/08/2002
- In the looked list, apart from of unique former value of the type REG_SZ, the value of the type REG_EXPAND_SZ are added also

v1,0,0,3  08/15/2009
- project rebuild in MS VS.NET 2008 with use WTL 8.0
/////////////////////////////////////////////

Best regards.
Michael Drozdov, ICS Soft, Perm, Russia
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
My Page:  http://vfpdev.narod.ru/
ICS Page: http://ics.perm.ru/ [on Russian]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~