Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2010, 17:12   #1
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию Я исчезаю. Самоуничтожение файла Excel

Несколько раз встречал в этом форуме примеры, как сделать макрос, когда по истечении определённого времени (или наступившей даты) файл самоуничтожается.
А вопрос такой.
Файл я планирую отдать заказчику на CD-ROM`e. Для того, что бы в него можно было вносить информацию, файл необходимо перенести на HDD.
Где он и удалится в назначенное время. Но ведь оригинал остался на CD. А если заказчик, спустя отведённое время попытается его скопировать на HDD и открыть. Как будет себя вести файл ? У кого были подобные задачи, прошу поделиться опытом.
kzld вне форума Ответить с цитированием
Старый 12.11.2010, 17:39   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

А что.разве нельзя получить сразу оплату.
Компилируйте ваши модули в dll.а в них и проверку на время ставте
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 12.11.2010, 18:20   #3
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
А что.разве нельзя получить сразу оплату.
Компилируйте ваши модули в dll.а в них и проверку на время ставте
Вопрос не в оплате. Вопрос в конфеденциальности данных
kzld вне форума Ответить с цитированием
Старый 12.11.2010, 19:45   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

А как Вы достоверно определите, что дата наступила?!
Согласно таймеру комьютера? Так его легко установить на любую дату!

Единственное решение, которое я вижу - так это онлайн доступ с прекращением по дате. Или программа работает только получив нужный ключ от онлайн сервиса. Не получила - не работает.

Но и тут полно слабых мест.
1) никто не мешает сделать локальную копию Ваших данных и, после окончания срока действия - пользоваться тем, что скопировано.
2) "То, что один человек сделал - другой завсегда сломать может!" (c) формула любви.
Защиту можно взломать и "отвыкнуть" программе проверять даты и лезть на сервер...

p.s. ну а использование MS Excel с точки зрения защиты не оправдано. Не для того он был придуман и используется. В MS Excel взлом упрощается в десятки раз. Т.к. макросы можно отключить/вскрыть/изменить и т.д. и т.п.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.11.2010, 19:58   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
А как Вы достоверно определите, что дата наступила?!
Согласно таймеру комьютера? Так его легко установить на любую дату!
Абсолютно точно!!!))
Как-то делал приложение, которое можно было открыть только один раз в день, т.е. проверялась дата открытия.
Так ребятки быстро это "усекли", меняли системную дату в компе и открывали файл)
Пришлось применять другой подход.
p.s.
Как-то на соседнем форуме была обширная тема. Все началось с Пароль на защиту листа, а уже потом разговор перешел вообще на защиту проектов VBA.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 12.11.2010 в 20:04.
VictorM вне форума Ответить с цитированием
Старый 12.11.2010, 21:33   #6
npocmop
Пользователь
 
Аватар для npocmop
 
Регистрация: 02.11.2010
Сообщений: 55
По умолчанию

Цитата:
А если заказчик, спустя отведённое время попытается его скопировать на HDD и открыть. Как будет себя вести файл ?
похоже тут придется ставить несколько счетчиков, напр. на кол-во открытий, или на кол-во операций или на учет конкретных операций (открытие листов, выполнение арифм.функции или изменение ячеек) после чего - исчезание. Смотря какая у Вас основная задача у этого расчета.
А вообще, похоже вопрос скорее = спрятать макрос, чтобы специалист не смог его прочесть... а этот вопрос на форуме пока подвешен, кроме варианта "project is unviewable"
npocmop вне форума Ответить с цитированием
Старый 12.11.2010, 22:04   #7
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию

Цитата:
Сообщение от npocmop Посмотреть сообщение
вырезано
Я не думаю, что там (у ЗАКАЗЧИКА) будут крутые специалисты.
Править файл Excel будет бухгалтер, ну может быть секретарь.
Познания в Excel`e на уровне "встать в ячейку, ввести значение"
Данные не особо конфиденциальные (т.е не 00 - два нуля - "сверхсекретно, не выносить"), но и что бы они не расползлись по всей локалке или интернету.
Вот какая мысль пришла.
Где-то "на задворках" листа установить функцию СЕГОДНЯ.
При первом открытии вписать туда дату первого открытия файла.
И тут же, функцию из ячейки убрать, а значение даты оставить.
А потом "плясать" от этой ячейки. Допустим дата текущая превысила дату установленную на неделю, или месяц - и "кранты" файлу.
Возможно ли такое?
kzld вне форума Ответить с цитированием
Старый 12.11.2010, 22:27   #8
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Возможно ли такое?
Конечно возможно.
Но о дате мы уже говорили, т.е. запросто меняется.
А можно просто счетчик на открытие файла поставить.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 12.11.2010, 22:50   #9
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от kzld Посмотреть сообщение
Я не думаю, что там (у ЗАКАЗЧИКА) будут крутые специалисты.
Править файл Excel будет бухгалтер, ну может быть секретарь.
Познания в Excel`e на уровне "встать в ячейку, ввести значение"
Данные не особо конфиденциальные (т.е не 00 - два нуля - "сверхсекретно, не выносить"), но и что бы они не расползлись по всей локалке или интернету.
Вот какая мысль пришла.
Где-то "на задворках" листа установить функцию СЕГОДНЯ.
При первом открытии вписать туда дату первого открытия файла.
И тут же, функцию из ячейки убрать, а значение даты оставить.
А потом "плясать" от этой ячейки. Допустим дата текущая превысила дату установленную на неделю, или месяц - и "кранты" файлу.
Возможно ли такое?
Тогда у тебя будет вечное "Сегодня" :)). В этом случае нужно:
1. Ставить ограничение на число открытие в один день. Скажем 50 раз, это выше всякого разумного числа. Если привысили - сразу убиваем файл, без предупреждение.
2. Где-то внутри файла храним массив дат когда хотя бы раз открывали файл.
При первом запуске: запоминаем дату, имя компьютера и др.информацию.
При запуске файла:
Код:
ТекЧисло = берем текущее число; 
If ТекЧисло меньше какой либо даты в МассивДат Then GoTo КонтрольОшибка.
If ТекЧисло нет в МассивДат Then
   пишем в конец МассивДат
   счетчик ПросмотрЗаДень = 1
   GoTo КонтрольПрошли
If ТекЧисло последнее в МассивДат Then 
   счетчик ПросмотрЗаДень +1
   If счетчик ПросмотрЗаДень > МаксЗначение Then GoTo КонтрольОшибка.
   GoTo КонтрольПрошли
If АрхивИмяКом = имя компа запуска Then GoTo КонтрольПрошли
Сдесь можно проверить любое другое свойство.
GoTo КонтрольОшибка.

КонтрольОшибка:
   Убиваем файл без предупреждения.

КонтрольПрошли:
   Принудительное сохранение
   Начинаем работу.
Это грубо в первом приближении.
Можно при первом запуске создать флаг запрятав его скажем в system32. Флаг - это файл нулевой длиный (хотя и не обязательно, в нем может быть полезная информация - например МассивДат), но имя и место положение которого известно. И при каждом запуске проверять его наличие. Если его нет - то смерть "через тумбу-юмбу".
С уважением, Алексей.

Последний раз редактировалось tae1980; 12.11.2010 в 23:08.
tae1980 вне форума Ответить с цитированием
Старый 12.11.2010, 23:13   #10
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Тогда у тебя будет вечное "Сегодня"
Не думаю...
Цитата:
Где-то "на задворках" листа установить функцию СЕГОДНЯ.
При первом открытии вписать туда дату первого открытия файла.
И тут же, функцию из ячейки убрать, а значение даты оставить.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размер файла Excel ARTSTAR Microsoft Office Excel 9 12.11.2010 11:23
Запуск файла из Excel Фернан Microsoft Office Excel 6 29.01.2009 22:51
Самоуничтожение Chainic Общие вопросы по Java, Java SE, Kotlin 3 27.06.2008 23:41
Самоуничтожение Albenous Общие вопросы Delphi 5 21.01.2008 08:55
создание файла из excel __madD__ Microsoft Office Excel 1 26.09.2007 16:54