![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#31 | |
Пользователь
Регистрация: 02.11.2010
Сообщений: 55
|
![]() Цитата:
намекните на какие функции внимание обратить... попыжусь, но выложу готовый результат Последний раз редактировалось npocmop; 15.11.2010 в 14:29. |
|
![]() |
![]() |
![]() |
#32 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
Эхехе. Все сам...
Код:
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
|
![]() |
![]() |
![]() |
#33 |
Пользователь
Регистрация: 02.11.2010
Сообщений: 55
|
![]()
ну ш а м а н и щ е, большой Вам Рахмат!
очень много за ночь перебрал всяких вариантов теперь понял главное - здесь можно всё ![]() потестил: работает, приложусь хотяб по мелочи и бубен практически в сборе - можно обувь подбирать судя по результату тема скорее называется "отомстить за не $деланные пополнения" |
![]() |
![]() |
![]() |
#34 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
Все забывал написать насчет хранения даты. В аглицкой Windows формат даты MM.DD.YYYY, а в русской - ДД.MM.ГГГГ. Функция CDate() и др. при преобразовании использует формат Windows, т.е. результат может случится разным.
Дату лучше хранить в виде числа: Const c_Date As Date = 0 ' = CSng(CDate("00/00/0000 00:00:00")) Может кто знает в Word функцию преобразующую строку в дату по формату пользователя?
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
|
![]() |
![]() |
![]() |
#35 |
Пользователь
Регистрация: 02.11.2010
Сообщений: 55
|
![]()
Покопался.. в основном по делфи информации завались, прямо в примерах по этому вопросу , по питону много .. а по ворду только viter.alex на качелях, но у него вроде тоже такого не описано.
Может кто подскажет ещё, возможно ли сделать в ворде такую каку, чтобы текст был виден только на пол экрана? без применения макросов. если с этого начнется документ - пользователь разрешит макросы (можно надпись ненавязчивую вставить, что без мароса - совсем не то...), макросом всё ставим на место и зрасьте |
![]() |
![]() |
![]() |
#36 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
Все скрытия обходятся или копированием-вставкой в новый документ, или банальным переключением в режим просмотра "Черновик" или "Обычный". Повторюсь, в данном случае искажение - оптимальный вариант.
Т.е. при открытии без макросов документ должен быть уже искажен (еще на этапе создания), и иметь сообщение о макросах. Просто к искажению надо добавить вставку/удаление сообщения. Например, найти: знак абзаца, заменить: знак абзаца + сообщение + знак абзаца. И наоборот. Также можно использовать эффект неожиданности. Например, по истечении срока искажать ключом, а ключ сразу удалять. Ключом при StrReverce может служить шаблон поиска "[A-Za-zА-ЯЁа-яё0-9 ]{1;}". Если исключить из него отдельные буквы ("А-ДК-На-жм-ф"), или изменить длину ({1;10}), то эффект будет интересный.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Последний раз редактировалось Вождь; 16.11.2010 в 09:41. |
![]() |
![]() |
![]() |
#37 | |
Пользователь
Регистрация: 02.11.2010
Сообщений: 55
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#38 |
Пользователь
Регистрация: 02.11.2010
Сообщений: 55
|
![]()
подскажите как реализовать последний штрих в макросе... получается, что у пользователя в меню макросов торчит CyrLarReverce и он в любой момент может обернуть изменения текста. Как грамотно прирастить к установленной c_Date$ , например такую конструкцию:
Dim c As Variant Set c = ThisDocument.VBProject.VBComponents ("Module1") ThisDocument.VBProject.VBComponents .Remove c Set c = Nothing With ThisDocument.VBProject.VBComponents ("ThisDocument").CodeModule .DeleteLines 1, .CountOfLines End With чтобы после исполнения реверса, макрос самоудалялся |
![]() |
![]() |
![]() |
#39 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
Зачем? Ведь песня была о том, чтобы покупатель имел возможность отката.
Паролем должен быть ключ шифрования (см. выше), временно хранить его в документе можно переменную (Variable). Тогда алгоритм будет такой: - создаем документ, в котором: макросы защиты, переменная ключ-пароль (Variable); - при открытии документа макросы проверяют срок; - по истечении срока документ шифруется, ключ-пароль (Variable) удаляется; - по получении ключа от автора, пользователь дешифрует документ. Программный доступ к VBA-проекту (VBProject ) возможен только с разрешения пользователя (ручками должна быть включена соответствующая опция). Сознанная здесь "защита" и так, в лучшем случае сработает один раз, зачем ее ослаблять еще больше? Чтобы скрыть макрос в списке Alt+F8: Private Sub CyrLarReverce Function CyrLarReverce
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
|
![]() |
![]() |
![]() |
#40 | |
Пользователь
Регистрация: 02.11.2010
Сообщений: 55
|
![]()
да... возможность отката.
Не могу понять.. Представилась простая последовательность : если файл в архиве (или на почт.сервере), его покупатель копирует, открывает, макрос отрабатывает, удивился - закрывает, удаляет. копирует опять и уже не разрешаешь макросы и защиты как бы нету.. Это из простых среднестатистичеких соображений, без фантазии.. А может его изначально переворачивать, а по паролю восстанавливать? Но параметр даты пусть работает также как и раньше.. Не хватает опыта команд. опять же Цитата:
есть одна мыслишка.. а системное окошко может всплывать без макросов при загрузке документа? Последний раз редактировалось npocmop; 22.11.2010 в 10:19. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Скрыть или запретить для изменения | nicuav | Microsoft Office Excel | 17 | 16.02.2012 02:22 |
Запретить сворачивание формы | voron.kz | Помощь студентам | 3 | 05.11.2010 09:07 |
Запретить редактирование в DBGrid | MixanMM | БД в Delphi | 12 | 10.05.2010 20:28 |
Запретить изменения Книги после истечения месячного срока | komar73 | Microsoft Office Excel | 0 | 31.03.2009 11:01 |