Обсуждение ушло куда-то в степь. Где в вашем сценарии открывается файл, на клиенте? Тогда пользователь уже может получить к нему какой угодно доступ - достаточно посмотреть, какой именно файл открыт в Word/Excel (а файл наверняка где-нить в temp сохранен либо доступен по сети), прибить этот Word/Excel, чтобы они "отпустили" файл, и скопировать его себе куда-нить, а потом хоть распечатать, хоть отредактировать... Мне кажется, в сценарии, когда кто-то создает файл, который потом надо открыть на клиенте, но запретить какие-то действия с ним, реальный выход - это разве что использование
DRM. А все эти макросы и установки флагов в ветке HKCU - это какие-то игры в кошки-мышки. На кого это рассчитано, на девушек из бухгалтерии, которые компьютером пользоваться не умеют? Если мне надо будет, чтобы при открытии файла никакие макросы не выполнялись, я могу настроить офис соотв. образом и, к примеру, на подветку HKCU с настройками оставить себе доступ только на чтение или еще какую гадость придумать.
PS. Начнем еще с того, что в виндах любой пользователь имеет право на
отладку процесса, который запускает (т.е. CreateProcess() возвращает дескриптор запускаемого процесса с полным доступом к нему), а вы говорите - макросы, параметры в HKCU перебить...