Если у вашего приложения установщика / регистратора есть манифест, и он говорит «не запускать с повышенными правами», то при попытке записи в HKLM это не удастся. Если у вас есть манифест с надписью «запустить с повышенными правами», то при попытке записи в HKLM он завершится успешно. Если у вас нет манифеста (который вы запрашиваете с помощью / MANIFESTUAC: NO), при попытке записи в HKLM он записывает вместо этого в виртуализированное местоположение.
Когда вы запускаете приложение отчетов, применяется аналогичная тройка, хотя она может читать HKLM. Поэтому, если приложение отчетов имеет манифест, с повышенными правами или нет, оно читает HKLM. Без манифеста он читает виртуальное местоположение. Вот почему вы добились успеха, когда оба приложения имеют манифест или не имеют манифеста.
Вероятно, было бы желательно иметь приложение-установщик с манифестом, запрашивающим повышение прав, а в приложении отчетов есть манифест, который не запрашивает повышение прав. Таким образом, все ваши приложения говорят правду, и все работает. Плюс ты знаешь, почему это происходит.