Создание документа MS Word «абсолютно» только для чтения - PullRequest
0 голосов
/ 07 июня 2018

Возможно ли в vba сделать документ доступным только для чтения и таким образом, чтобы любой пользователь не мог вносить в него какие-либо изменения?

Метод защиты объекта документа позволяет создавать документтолько для чтения, но как только пользователь пытается отредактировать документ, он предоставляет доступ к панели «Ограничить редактирование», которая дает пользователю доступ к кнопке «Остановить защиту».

Я хотел бы запретить панели «Ограничить редактирование»появление.

1 Ответ

0 голосов
/ 08 июня 2018

Хотя кажется невозможным остановить открытие панели «Ограничить редактирование».Пользователь может запретить редактирование, добавив хук мыши и перехватывая любые щелчки мышью на панели «Ограничить редактирование».Код в Delphi:

Hdl := WindowFromPoint (Mouse.CursorPos);
GetClassName (Hdl, clsName, 256);
GetWindowText (Hdl, wText, 256);
if (uppercase(clsName) = 'BOSA_SDM_MSWORD') 
and (uppercase(wText)= 'PROTECT DOCUMENT') then {do whatever}

Это ловит любой щелчок на панели «Ограничить редактирование» и не указывает на кнопку «Остановить защиту».Я бы предположил, что можно было бы продолжить детализацию, чтобы конкретно определить кнопку, но мне кажется, что в этом нет необходимости.Кроме того, если имя класса или текст окна изменится, функция завершится ошибкой.

Помимо неуклюжести и, возможно, не для будущего, она, тем не менее, работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...