Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Люди добрые, вставайте на защиту программиста!!!

20K
19 февраля 2007 года
Mimino
18 / / 02.02.2007
Работая в одной нефтяной компании я сделал универсальный калькулятор по расчету веса нефти и нефтепродуктов… вся программа, включая ехе-шник и отчеты работает через файл надстроек *.xla.
Так как был не опытен и планировал усовершенствование, то защиту туда поставил слабенькую:

Private Sub Workbook_Open()
On Error GoTo errHandle
Dim dDelDate As Date
dDelDate = #3/1/2007#
Dim dPredDate As Date
dPredDate = #2/1/2007#

If dDelDate < Now Then
MsgBox ("Срок действия надстроек истек, обратитесь к разработчику!")
ThisWorkbook.Close
Exit Sub
End If
If dPredDate < Now Then
' MsgBox ("Срок действия надстроек истекает 01.03.07, для получения новой, улучшенной версии обратитесь к разработчику.")
End If

Exit Sub
errHandle:
MsgBox Err.Description, vbCritical, "Ошибка № " & Err.Number
ThisWorkbook.Close
End Sub

Вся защита идёт по боку, когда меняешь системное время на компьютере, чем они непременно воспользовались.
У меня есть единственный шанс заменить программу на другую. ПОМОГИТЕ сделать хорошую защиту... может через реестр, а можем с помощью Windows можно как-нибудь запретить запуск программы с определённым именем...
9.8K
25 февраля 2007 года
b0m
44 / / 23.07.2005
Цитата: Mimino
Работая в одной нефтяной компании я сделал универсальный калькулятор...

Результаты твоего труда в этой копании принадлежат компании, от кого защита?

Цитата: Mimino
ПОМОГИТЕ сделать хорошую защиту

Хорошая защита хороших денег стоит (если не знал).

1.9K
26 февраля 2007 года
AxXxB
229 / / 21.11.2006
Ты лучше не дату/время сверяй, а считай кол-во секунд во время выполнения программы. Можно, например, поставить на форму Timer и сделать его Interval равным 1000, а потом написать что-то такое:

Код:
Option Explicit
Dim MyTime, LastTime As Double

Private Sub Form_Load()
'Вот тут надо бы загрузить из файла настроек значение LastTime
MyTime = LastTime
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
LastTime = LastTime + MyTime
'А тут сохранить значение LastTime в файл
End Sub

Private Sub Timer1_Timer()
MyTime = MyTime + 1
If MyTime > 3600 Then MsgBox ("Ага, попались! А кто регистрироваться будет?"): Unload Me
End Sub


Только вот я не понял, ты VB используешь или VBE? С одной стороны "exeшник", с другой "ThisWorkbook.Close"...
313
26 февраля 2007 года
insane88
440 / / 13.12.2006
Действительно хорошая защита... каким образом ее можно сделать на VBA?? :confused: Если все скрипты можно отредактрировать...
1.9K
28 февраля 2007 года
AxXxB
229 / / 21.11.2006
insane88, cмотри, Mimino написал:
[QUOTE=Mimino]вся программа, включая ехе-шник и отчеты работает через файл надстроек *.xla.[/QUOTE]
Как же ехе'шник получился в VBA? Из этого я сделал вывод, что Mimino использует VB, однако код подтверждает обратное.

А вообще есть функция Timer, которая также присутствует и VBA. Можно написать через нее. Вот так, например:

Код:
Option Explicit
Dim MyTime, LastTime As Double

Private Sub Workbook_Open()
...
MyTime = Timer
...
End Sub

Private Sub WorkBook_Close()
...
' Загружаем значение LastTime из файла настроек
...
MyTime = Timer - MyTime
LastTime = LastTime + MyTime
' Сохраняем значение LastTime
...
End Sub

Правда, если перевести время назад во время выполнения программы, все полетит к чертям. Можно как-то отловить перевод часов, но как?..
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог