|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
Проблема такая: мне надо в VFP открыть вордовский файл и сделать защиту его от несанкционированного редактирования. Чтобы мог его редактировать только создатель файла. Помогите пожалуйста новичку. Я макросы-то сделала, но поскольку синтаксис у VFP и VBA разный, а документации нет, то и тыкаюсь как слепой котенок. Хватило меня только на то, чтобы открыть файл и выделить его весь. А как написать код защиты, не могу понять. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2010, 12:21 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2010, 12:54 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
я так понимаю под несанкционированным редактированием понимается установить пароль на объект VBAProject программно? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2010, 12:54 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
ElenaZaus, Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2010, 15:50 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
КонецЦикла, нет, мне нужно, чтобы документ Ворда или Экселя нельзя было отредактировать остальным пользователям. Я пишу АРМ "Документооборот". ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2010, 11:40 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
КонецЦикла, я забыла сказать, что мне нужен код на Visual FoxPro 6.0. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2010, 11:41 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
ElenaZausКонецЦикла, я забыла сказать, что мне нужен код на Visual FoxPro 6.0. Синтаксис не зависит от версии FoxPro, поскольку требуется использовать команды собственно Word. Во-первых, Вы должны понять, что абсолютной защиты Вы сделать не сможете. Если другие пользователи могут хотя бы просматривать документ, то они при наихудшем раскладе смогут просто ручками переписать данные в новый документ, а потом подсунуть этот новый документ вместо старого. А поэтому, во-вторых, не стоит пытаться делать что-то сильно "навороченное". Простейший вариант защиты - это воспользоваться пунктом меню "Сервис" \ "Защитить документ" Записываете макрос. Затем открываете записанный макрос, выделяете ключевое слово "protect" и нажимаете клавишу F1. Появляется справка по используемому методу. В данном случае полный синтаксис Код: plaintext
В качестве Expression, как видно из кода макроса, выступает текущий документ. Как видно из документации, приведенный синтаксис ну очень похож на синтаксис FoxPro. Вот его и используйте. Т.е. "как есть" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Как видите, те параметры, которые не нужны и по справке не обязательны для указания, просто пропускаются (лишняя запятая в середине и не указаны последние параметры). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2010, 19:31 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
Кстати, если файл открывается из среды FoxPro, то может быть для "левых" пользователей просто открывать их в режиме Read-Only? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Третий параметр в методе Open() как раз и управлет тем в каком режиме Read-Only открывать документ Можно также защитить весь файл паролем и вписывать пароль в метод Open(). Это 5 параметр ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2010, 19:57 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
ВладимирМ, спасибо Вам большое! Я обязательно попробую и напишу, получилось или нет. Сенкс! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2010, 13:37 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
ВладимирМ * Накладываем защиту #DEFINE wdAllowOnlyReading 3 loDocument.Protect(wdAllowOnlyReading, , "Password") Я попробовала этот способ. Все получается прекрасно, только вот теперь не могу распаролить файл. ))) Где в этом коде заложено, каким паролем мы защитили данный документ? А, кстати, применив Ваши рекомендации относительно ReadOnly, я эффекта этого не получила. То есть пользователь смог отредактировать файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 13:09 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
Вообще-то, Вам в любом случае стоит поучится использовать справку VBA в Office. Ну, и самостоятельно экспериментировать. ElenaZausЯ попробовала этот способ. Все получается прекрасно, только вот теперь не могу распаролить файл. ))) Где в этом коде заложено, каким паролем мы защитили данный документ? Повторно перечитайте мой топик, где я приводил код. Там же приведена цитата из HELP VBA по данной команде. Извините, но где в приведенном коде указан пароль, Вы должны определить сами. Это не сложно. Как "распаролить"? Ну, очевидно, кроме команды protect() должна быть противоположная по смыслу команда. И она действительно есть. Называется unprotect(). Синтаксис в VBA имеет вид Код: plaintext
Надеюсь, сможете "перевести" в синтаксис FoxPro по аналогии с командой protect(). Т.е. логика редактирования будет такая: открываете файл, снимаете защиту, редактируете, заново устанавливаете защиту. ElenaZausА, кстати, применив Ваши рекомендации относительно ReadOnly, я эффекта этого не получила. То есть пользователь смог отредактировать файл. Отредактировать-то он смог, а вот сохранить в этот же файл - не получится. Только в другой файл. Попробуйте после редактирования открытого таким образом файла нажать "Сохранить". Сразу поймете в чем дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2010, 10:31 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
Да, согласна. Я когда написала сообщение о том, что не могу распаролить, тогда тока заметила, что пароль - "Password". Посмеялась над собой! Извините меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 12:09 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
ВладимирМ, здравствуйте! Спасибо Вам огромное за помощь по Ворду. С Экселем я справилась сама.:) Просто по аналогии сделала и все получилось ReadOnly. :) Вы знаете, у меня еще маленькая проблемка примерно на эту же тему. Документации я не нашла, а мне надо теперь из VisualFoxPro открыть jpg-файл, причем не просто открыть, а еще и только для чтения. Или его нельзя и так никак отредактировать? Не поделитесь ли со мной своим богатым опытом? Я буду очень признательна. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 07:36 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
ElenaZaus, кидаем на форму Image. У него есть св-во Picture. Редактировать не получится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 07:46 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
ElenaZausДокументации я не нашла, а мне надо теперь из VisualFoxPro открыть jpg-файл, причем не просто открыть, а еще и только для чтения. . Если хранится в папке jpg файл, то наверно те, кто пишет - им полный доступ к папке. А кто смотрит - только для чтения. Это так скажем 100% защита. Потому как в фоксе вы откроете jpg только для чтения, а пользователь может сам залесть в папку и поредактировать его. На счет документооборота, не знаю, может все документы/файлы в базе данных держать нужно. Ну, типа пользователь выбирает запись с нужным документом, который хранится в записи. Сохраняется во временную папку, оттуда уже открывается фоксом. А на базе данных уже проще разграничить доступ. Ну это я просто своими мыслями поделился. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 07:54 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
MAYAKOV_SV, мне нужен код на языке Visual FoxPro, в котором бы было: открытие jpg-файла, и чтобы он был ReadOnly. Я конечно и сама пробую разобраться, но была бы признательна, если кто-то захочет помочь, поделится своим опытом и напишет код. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 10:41 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
ElenaZaus, На форме размещаете Image. Пример кода загрузки картинки: Код: plaintext 1.
Просто для редактирования нужно загружать в графический редактор, а тут картинка просто отображается на форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 11:06 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
MAYAKOV_SV, Вы меня не поняли. У меня есть таблица в Gride. Мне надо сделать так, чтобы по двойному клику мыши на столбце с названием документа происходило открытие jpg-файла. Я прекрасно знаю, как открываются image Но у меня другой случай. Конечно, если не получится написать код открытия jpg-файла, то придется выводить в форму объект image. Но это будет лишь в крайнем случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 11:22 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
Задача формулируется так: Открыть приложение для редактирования файлов-картинок, но таким образом, чтобы файл открывался в режиме Read-Only. При этом, команда на открытие должна быть дана из среды FoxPro. Собственно открыть приложение можно по ассоциации с расширением файла в системе Windows. Подробно это описано здесь Как открыть файл в другом приложении Однако управлять режимом Read-Only, да и вообще хоть чем-нибудь в этом приложении при таком открытии - невозможно. Это полная симуляция двойного клика мыши по имени файла в проводнике Windows. Чтобы из приложения FoxPro можно было управлять тем приложением, в котором предполагается редактирование JPG-файла необходимо, чтобы это приложение имело COM-интерфейс, как приложения Word и Excel. Т.е. разработчики этого приложения должны предоставить какие-либо средства управления своим приложением из-вне самого приложения. Если этого нет, то ничего и не сделаешь. Ну, правда, есть вариант менять атрибут файла или папки в которой этот файл находится. Т.е. установить атрибут Read-Only на уровне системы. Думаю, тут проще обратится к администратору, чтобы он настроил права доступа на папку, где лежат файлы картинок. Одной группе пользователей - только просмотр. Другой группе пользователей - просмотр и редактирование. Кстати, таким же образом можно решить и проблему редактирования файлов Word и Excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 11:37 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
ElenaZaus происходило открытие jpg-файла . Я прекрасно знаю, как открываются image Но у меня другой случай .Извините, но я не понимаю, какой же у вас случай? Вам надо открыть жпг во внешней программе, но с запретом редактирования? Тогда читайте пост Маякова про организацию доступа к папкам. Или имеется в виду что-то иное? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 11:38 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
ElenaZaus, Еще одна попытка у меня :) Вот что нашел поиске: Код: plaintext 1. 2.
Тогда запустится программа ассоциированная с jpg. Например, Microsoft Office Picture Manager. Но в этой программе можно, к примеру поменять цвета и сохранить на диск. Т.е. не ReadOnly. Вам лучше сделать свой просмотрщик jpg - пусть по нажатию будет открыватся форма с image для просмотра картинок. Теперь я правильно все понял, что вы собирались делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 11:38 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
MAYAKOV_SV, да, спасибо. :) Теперь Вы правильно меня поняли. И щас я попробую реализовать Ваше предложение. Сенкс! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 11:54 |
|
Макросы Word - в код VisualFoxPro 6.0
|
|||
---|---|---|---|
#18+
ВладимирМ, видите ли, у нас такие условия работы: система Документооборот предполагает создание документов любым пользователем, но тогда другой пользователь должен открывать этот файл только как для чтения. Поэтому четкого разграничения прав тут не получится. У меня много папок: ("Приказы", "Распоряжения" и т.п.), в которые пользователи "складывают" документы программным путем (посредством АРМа). АРМ я писала сама. Поэтому и заморочки все мои. Я сам себе разработчик и кодировщик. С Вордом и Экселем все в порядке, спасибо Вам огромное. Загвоздка вышла с картинками, я просто не знала названия приложения, которое надо принудительно открыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 12:02 |
|
|
start [/forum/topic.php?fid=41&msg=36935646&tid=1584806]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 301ms |
total: | 459ms |
0 / 0 |