Вы знаете, после того как я просидел над этим текстом несколько месяцев, создать хоть небольшую трудность, ввиде 4 часов, для меня только радость.Aent писал(а):vserg4, ваша задача принципиально не решается с использованием любых программных средств. Если документ отчуждается - нет проблемы вывести его на большой ЖК экран, сфотографировать цифровой камерой и распознать в Word, используя программу OCR (b.e. - тот же FineReader). Практика показывает, что на 200 страничный документ уходит около 4 часов работы
Word же в принципе не даст Вам возможности защитить от копирования читаемый документ.
Резюме: Такие проблемы решаются только через суд. Поддерживаю предложение Игорь Акопян.
Запрет печати паролем
Модератор: Naeel Maqsudov
- менять цвет или видимость (скрытый) шрифта при открыти, сохранении так, чтобы если документ открывается без активных макросов шрифт был бы белый (под цвет бумаги) или невидимый, но при активных макросах при открытии эти макросы делали бы шрифт автоматически видимым (или нужного цвета)vserg4 писал(а):А можно немного по подробнее про эти шаги.
Вместо уже указанной выше процедуры:
Код: Выделить всё
Private Sub Document_Open()
Set X.AppWord = Word.Application
End Sub
Код: Выделить всё
Private Sub Document_Open()
Set X.AppWord = Word.Application
ThisDocument.Content.Font.Color = wdColorBlack
ThisDocument.Content.Font.Hidden = False
End Sub
Код: Выделить всё
Private Sub AppWord_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
ThisDocument.Content.Font.Hidden = True
End Sub
Private Sub AppWord_DocumentBeforeClose(ByVal Doc As Document, Cancel As Boolean)
On Error Resume Next
ThisDocument.Undo 9999
ThisDocument.Content.Font.Hidden = True
End Sub
- защитить модули VBA от доступа
В редакторе VBA Menu-Tools-Project Properties-Protection-Lock project - да - password - тоже достаточно длинный
- перехватывать события выделения, копирования и изменения подобно тому, что я предложил выше.
в модуль класса EventClass добавить:
Код: Выделить всё
Private Sub AppWord_WindowSelectionChange(ByVal Sel As Selection)
Selection.Collapse
End Sub
Код: Выделить всё
Private Sub AppWord_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
ActiveWindow.View.ShowHiddenText = False
ThisDocument.Content.Font.Hidden = True
ThisDocument.Content.Font.Color = wdColorWhite
End Sub
- защитить книгу от сохранения изменений
Меню - Сервис - Установить защиту - записи исправлений - пароль - выберите пароль максимально длинный (15 символов) - чтобы даже если захотят подобрать, хоть потеряли бы время на это достаточно (только сами его не забудьте!!!)
И посмотреть, что получится... у меня к сожалению нет больше времени, чтобы все протестировать по всем возможным направлениям... но попробуйте сами все и сообщите, как получилось.. самому интересно... во всяком случае захватить текст в буфер у меня не получается и сохранить внесенные изменения тоже.
Но как это не печально... все эти старания все-равно мало чем помогают, т.к. достаточно открыть файл с отключенными макросами, восстановить цвет и видимость шрифта и все будет доступно...
может быть стоит подумать, куда можно было бы спрятать текст "поглубже", где бы он находился в файле, но не отражался, пока не будет включены макросы, которые этот текст возвращали бы в видимое состояние... я пока не придумал.
Всякое решение плодит новые проблемы.
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
vserg4, никто не мешает реализовать всё выше сказанное.... Это может сбить с толку неопытного человека.
Кроме того, добавьте в начало своего текста фразу об авторских правах и ответственности за их нарушение, а также фразу о необходимости вашего согласия при использовании текста или его фрагментов. И если вы готовы отстаивать свои права в суде (думаю это тоже не простое занятие: время, деньги) сделайте посылку заказным письмом. При личной встрече/передаче можно дополнительно уведомить принимающего, что авторские права защищены и всё такое
Кроме того, добавьте в начало своего текста фразу об авторских правах и ответственности за их нарушение, а также фразу о необходимости вашего согласия при использовании текста или его фрагментов. И если вы готовы отстаивать свои права в суде (думаю это тоже не простое занятие: время, деньги) сделайте посылку заказным письмом. При личной встрече/передаче можно дополнительно уведомить принимающего, что авторские права защищены и всё такое


-
- Сообщения: 153
- Зарегистрирован: 11 июл 2005, 13:42
- Откуда: Крым, Алушта
- Контактная информация:
Кстати, существуют программы взлома паролей, а также есть программа, которая совершенно не знает о существовании паролей в документах Офиса (что ворд, что эксель, что акцесс - просто открывает и позволяет с ними работать, по ходу читая текст макросов с возможностью внесения изменений)
долблюсь с этой проблемой 2й день, и не до конца
два варианта решения
можно перехватить внутренние команды ворда, например:
Sub EditCopy()
'
MsgBox "Команда не активна"
End Sub
Sub EditCut()
'
MsgBox "Команда не активна"
End Sub
Sub fileprint()
'
MsgBox ("Печать не возможна")
End Sub
далее мудрил со скрываемым текстом при AutoOpen и AutoClose
(если макрос не запущен- видно только предупрежддение что документ защищен, текст не выведен, перезапусти с макросами"
в случае активации макроса это выражение скрывается, выводится основной текст
Sub AutoOpen()
.....
....
....
' With Selection.Font
' .Hidden = True
' End With
....
...
end sub
но ворд все время глючит при обработке, пошагово отрабатывает одно, а залпом другое при открытии третье.... а т.к. документ будут открывать люди скорее всего о VBA ни чего не знающие, то решил не рисковать
нашел такое решение, вставил в шаблон:
Sub blokerdoc()
ActiveDocument.Protect Password:="aots123456", NoReset:=False, Type:= _
wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False ', Print:=False
End Sub
при открытии нужного документа запускаю этот макрос
все хорошо, все красиво, блокирует,
но две вещи не могу решить:
1. Ctrl+P - заблокирована, а если нажать просто кнопку печать - печатает
2. выделенный текст не перетаскивается внутри документа, но легко выносится за приложение и вставляется в другое окно(любой текстовой редактор, в том числе новый док ворд)
два варианта решения
можно перехватить внутренние команды ворда, например:
Sub EditCopy()
'
MsgBox "Команда не активна"
End Sub
Sub EditCut()
'
MsgBox "Команда не активна"
End Sub
Sub fileprint()
'
MsgBox ("Печать не возможна")
End Sub
далее мудрил со скрываемым текстом при AutoOpen и AutoClose
(если макрос не запущен- видно только предупрежддение что документ защищен, текст не выведен, перезапусти с макросами"
в случае активации макроса это выражение скрывается, выводится основной текст
Sub AutoOpen()
.....
....
....
' With Selection.Font
' .Hidden = True
' End With
....
...
end sub
но ворд все время глючит при обработке, пошагово отрабатывает одно, а залпом другое при открытии третье.... а т.к. документ будут открывать люди скорее всего о VBA ни чего не знающие, то решил не рисковать
нашел такое решение, вставил в шаблон:
Sub blokerdoc()
ActiveDocument.Protect Password:="aots123456", NoReset:=False, Type:= _
wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False ', Print:=False
End Sub
при открытии нужного документа запускаю этот макрос
все хорошо, все красиво, блокирует,
но две вещи не могу решить:
1. Ctrl+P - заблокирована, а если нажать просто кнопку печать - печатает
2. выделенный текст не перетаскивается внутри документа, но легко выносится за приложение и вставляется в другое окно(любой текстовой редактор, в том числе новый док ворд)
Кстати, на VBA можно открыть процесс и модифицировать его память?
It's a long way to the top if you wanna rock'n'roll
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Из VBA можно вызывать любые функции WinAPI
http://msdn.microsoft.com/en-us/library ... e.10).aspx
в т.ч. функции управления процессами и памятью
http://msdn.microsoft.com/en-us/library ... e.10).aspx
в т.ч. функции управления процессами и памятью
Значит патчим процесс winword.exe и дело в шляпе. Опять же если макросы будут включены.
It's a long way to the top if you wanna rock'n'roll
Добрый день! Ребят, подскажите пожалуйста макрос для запрета печати из файла word, excel c запросом ввода пароля. Может кто-нибудь задавался такой целью.