Пароль на защиту листа

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Аватара пользователя
Mint86
Сообщения: 127
Зарегистрирован: 04 мар 2008, 11:47

Возник вопрос :)
А можно ли сделать так чтобы файл Excel запускался только через батник, а в этом батнике указать что надо проверить установлена ли галочка в безопасности макроса пункт низкий (Сервис-Макросы-Безопасность). Монитором реестра определил что проверку можно осущтвить в реестре в ветке: HKCU\Software\Microsoft\Office\11.0\Excel\Security
Параметр Dword "Lavel"
Если этот параметр установлен в 1 (там от 1 до 4) то защита от макросов отключена.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Mint86,
сделать так чтобы файл Excel запускался только через батник
да, видать задела Вас эта тема :) или код уж очень ценный ;) .
Комментировать не буду, замечу лишь, что батник, как Вы знаете, обыкновенный текстовый файл. И ни для кого не составит труда заглянуть, а что же он там "батит". Я, к примеру, перед тем как запустить какой - либо *.bat всегда смотрю его текст.
Не пойму, чем Вас не устраивает программа предложенная Aent. С защитой листов Вы справились, а с защитой кода - она справится. :confused:
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Mint86,
реестре в ветке: HKCU\Software\Microsoft\Office\11.0\Excel\Security
Параметр Dword "Lavel"
Если этот параметр установлен в 1 (там от 1 до 4) то защита от макросов отключена.
тут идейка пришла, а на соседнем форуме нашел как Вы говорите "кусочек кода".
А что если запись в реестре (т.е. выставлять необходимый уровеь безопасности) делать при открытии книги? Цитирую код:
Запись в реестр

Код: Выделить всё

Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKLMSoftwareMicrosoftWindowsCurrentVersionRunИмя твоей проги", "Путь к твоей проге"
Удаление из реестра

Код: Выделить всё

Set Reg = CreateObject("WScript.Shell")
Reg.RegDelete "HKLMSoftwareMicrosoftWindowsCurrentVersionRunИмя твоей проги"
ну естественно прописать свои данные. Только сразу говорю, не проверял, это только идея. :rolleyes:
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Аватара пользователя
Mint86
Сообщения: 127
Зарегистрирован: 04 мар 2008, 11:47

&quot писал(а):да, видать задела Вас эта тема или код уж очень ценный .
Да нет, ценного ничего нет, просто в дальнейшем может появиться (если научусь делать ценные вещи) :)
тут идейка пришла, а на соседнем форуме нашел как Вы говорите "кусочек кода".
А что если запись в реестре (т.е. выставлять необходимый уровеь безопасности) делать при открытии книги? Цитирую код:
Запись в реестр
Да идея хорошая, спасибо, буду пробовать.
Аватара пользователя
Mint86
Сообщения: 127
Зарегистрирован: 04 мар 2008, 11:47

&quot писал(а):Комментировать не буду, замечу лишь, что батник, как Вы знаете, обыкновенный текстовый файл. И ни для кого не составит труда заглянуть, а что же он там "батит". Я, к примеру, перед тем как запустить какой - либо *.bat всегда смотрю его текст.
Да, Вы провы идея неудачная...
&quot писал(а):Не пойму, чем Вас не устраивает программа предложенная Aent. С защитой листов Вы справились, а с защитой кода - она справится.
Я не говорил что она меня не устраивает. Скорее всего именно его я и буду использовать. Мне просто интересно какие еще кроме этого (без программы) методы можно применить.
Аватара пользователя
Mint86
Сообщения: 127
Зарегистрирован: 04 мар 2008, 11:47

Тут я подумал, что идея с записью в реестр значаний с помощью VBA кода можно использовать в других "задачах", но она к сожалению не работат с установлением приоритета защиты от макросов. Так, как если пользователь отключил выполнение макросов, то и в реестр ничего не запишешь ;((
Но за идейку спасибо все равно!!!
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Mint86,
Так, как если пользователь отключил выполнение макросов, то и в реестр ничего не запишешь ;((
да, действительно :) , теперь уже меня "клинить" начало. Тогда "запихнуть" все это "добро" в какой - нибудь *.exe _шник. Но это уже не ко мне... :confused:
p.s. а может юзеру в автозапуск машины поставить "бяку", которая будет еще при запуске системы прописыватьв реестр то, что нужно ?
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Аватара пользователя
Mint86
Сообщения: 127
Зарегистрирован: 04 мар 2008, 11:47

&quot писал(а):а может юзеру в автозапуск машины поставить "бяку", которая будет еще при запуске системы прописыватьв реестр то, что нужно ?
Вот поэтому я и подумал на батник. Я правдо в батниках практически ничего не знаю, но думаю что можно сделать так чтобы он запускался без показа окна (без вывода окна), и прописать его в реестре в ветках автозапуска. Но вот видите какая проблема, данный баткин (или еще что нить другое) проверит, уровень защиты юзера при старте системы, но ведь юзер может отключить эту защиту после того как система включена. Поэтому я думал может можно сделать так чтобы батник включался именно передзапуском файла. Ведь если это возможно чтобы батник включался перед непосредственным запуском файла, тогда даже если юзер отключит защиту, и захочет сломать защиту, ему придется закрыть файл и обратно открыть, потому что программы взломщики не булут работать с включенным файлом. И если он выключит и найдет пароль, то при включении обратно файла для того чтобы ввести найденный пароль сработает батник и включит защиту, а там пароль другой. Не знаю, может эти теоретические рассуждения неправильны, но ведь попытка - не пытка :)
Аватара пользователя
Mint86
Сообщения: 127
Зарегистрирован: 04 мар 2008, 11:47

Вот что ответили на руборде (вопрос был тот же насчет запуска батника перед запуском Excel):
Напрямую прикрутить, имхо, или нельзя или получится плохо. Лучше в виде вызова через контекстное меню

Вот сам батник

Код:
@echo off
setlocal
set "exec=reg query HKCU\Software\Microsoft\Office\11.0\Excel\Security ^| findstr Level"
for /f "tokens=3" %%i in ('%exec%') do (
if %%i equ 0x1 start "" "%ProgramFiles%\...\excel.exe" %1
)



Пути к экселю и само название исправь, так как у меня не установлен MS Office.

И поищи как батник добавить в контекстное меню проводника.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Mint86,
прописать его в реестре в ветках автозапуска
я задался той же идеей и даже создал тему на нашем форуме http://forum.developing.ru/showthread.php?t=13666 но пока ничего нет.
сделать так чтобы батник включался именно передзапуском файла
Написать сам батник - это уже вроде Вам решили, а вот как его запустить так, чтобы об этом никто не догадывался. Не знаю, реально ли это. :confused: :confused:
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Ответить