When you use Control Panel / Add/Remove Programs, some 32bit programs are missing from the display?

The display is built by retrieving:


Only entries with a Value Name of DisplayName are supposed to be listed.

Unfortuneatly, any DisplayName text string that exceeds 64 characters is erroneously ignored.

You can manually inspect and fix the errant entries, or you can run undn.bat.

undn.bat uses standard commands and contains:

<b>@echo off
set fix=n
regedit /e %temp%\undnout.reg HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
if exist %temp%\undnin.reg del /q %temp%\undnin.reg
for /f "Tokens=1* Delims<h1><a name="_i_in_temp_undnout_reg_do_call_parse_i_j_if_fix_">" %%i in (%temp%\undnout.reg) do call :parse "%%i" %%j
if %fix%</a></h1>"n" set fix=&goto end
regedit /s %temp%\undnin.reg
goto end
set str1=%1
set str2=%2
if %str1%<h1><a name="_REGEDIT4_echo_REGEDIT4_gt_temp_undnin_reg_amp_goto_end_set_str1_str1_if_str1_0_1_">"REGEDIT4" @echo REGEDIT4>%temp%\undnin.reg & goto end
set str1=%str1:"=%
if "%str1:~0,1%"</a></h1>"\[" set key=%str1%&goto end
if not "%str1%"<h1><a name="_DisplayName_goto_end_set_work_str2_0_63_set_work_work_set_work_work_set_name_work_if_name_">"DisplayName" goto end
set work=%str2:~0,63%!!!
set work=%work:"!!!="%
set work=%work:!!!="%
set name=%work%
if %name%</a></h1>%str2% goto end
set fix=y
@echo %key%>>%temp%\undnin.reg
@echo "%str1%"=%name%>>%temp%\undnin.reg