Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/16: Рейтинг темы: голосов - 16, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 3

Защита книги от переноса на другой ПК

07.03.2012, 09:47. Показов 3258. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня проблема, как защитить книгу от незаконного переноса на другой пк?
Если кто знает помогите. Заранее благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.03.2012, 09:47
Ответы с готовыми решениями:

Перенос данных с одного листа одной книги на другой лист другой книги с константой
Добрый вечер, товарищи! Есть прайс-лист, который содержит в себе много колонок и строк. На ежедневной основе мне приходится распределять...

Копирование строки с данными из листа одной книги в лист другой книги
Никак не получается написать код, который бы копировал только вторую строку с данными из листа одной книги в лист другой книги. Помогите...

Открытие книги по имени, находящемуся в ячейке другой книги
Как в VBA открыть книгу по имени, находящемуся в ячейке другой книги?

19
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
07.03.2012, 12:53
А от кого защищаемся? :-)
Для простого юзера сделай файлик protect.ini в известном только тебе каталоге типа c:windows и при открытии книги (sub auto_open) проверяй его наличие.
0
1 / 1 / 0
Регистрация: 19.07.2011
Сообщений: 285
07.03.2012, 14:26
A kak mojno podrobnee
0
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 3
08.03.2012, 11:58  [ТС]
Спасибо! Но такой вариант я уже пробывал(только с текстовым файлом), и он работает.
Другой вопрос: Как создать приложение на основе книги? Чтобы при установки на пк оно себя прописывало в реестре.
Заранее благодарен за любые идеи.
0
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 12
08.03.2012, 12:10
функция сохраняющая установки в реестре VBA.SaveSetting
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
08.03.2012, 16:36
Visual Basic
1
2
3
4
5
6
7
Private Sub Workbook_Open()
   Const MY_COMPUTERNAME = "QASHR"
    
   If Environ$("COMPUTERNAME") <> MY_COMPUTERNAME Then
    ThisWorkbook.Close
   End If
End Sub
0
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 12
08.03.2012, 17:31
тогда не close a kill
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
08.03.2012, 18:22
Ну это дело вкуса.
Кстати, а как такой файл может себя уничтожить с помощью метода Kill?
Пример пожалуйста...

0
Alex77
10.03.2012, 01:25
стандартный вариант - создание bat файла. пример из конференции:
Visual Basic
1
2
3
4
5
6
7
8
9
10
'-----------создать bat-файл---------------
Open App.Path + "Delself.bat" For Append As #1
Print #1, "@echo off"
Print #1, ":try"
Print #1, "del " + App.EXEName + ".exe" ' здесь по идее надо вписать имя нужного файла
Print #1, "if exist " + App.EXEName + ".exe goto try"
Print #1, "del " + App.Path + "Delself.bat"
Close
'--------------------------------
Shell App.Path + "Delself.bat", vbHide
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
10.03.2012, 02:14

OK, мой вопрос остается в силе: как Excel файл может сам себя уничтожить с помощью метода Kill?
Еще вопрос: откуда вам известно, что я люблю рассказы Мюнхаузена?
Последний автор: ваш пример к сожалению не использует метод Kill и не показывает как можно Excel файлу себя убить. Кстати, он содержит об'ект не из VBA. То есть, он даже не компилируется. Но за попытку спасибо.
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
10.03.2012, 02:53
Alex77
Ваш пример работает для Excel файла. Вот его переработка, хоть и без метода Kill:
Visual Basic
1
2
3
4
5
6
7
8
9
Open Application.Path + "Delself.bat" For Append As #1
Print #1, "@echo off"
Print #1, ":try"
Print #1, "del " + ThisWorkbook.Name 
Print #1, "if exist " + ThisWorkbook.Name & " goto try"
Print #1, "del " + Application.Path + "Delself.bat"
Close
'--------------------------------
Shell Application.Path + "Delself.bat", vbHide
Прекрасный пример. Одна вещь в принципе остается нерешенной, но это уже за рамками видимо: Save As.

Таким образом, vik-belkin получил необходимый ответ, правильно? Это совместное использование Environ$("COMPUTERNAME") и исполняемого второго файла, использующего команду DOS del, не генерирующую здесь ошибки на открытых файлах.
То есть, если не тот РС, то переходи на DOS del в auto_open. При этом код должен быть запаролен.
0
Сумрак
13.03.2012, 18:58
Мда.. самый интересный вопрос в топике остался без ответа... Я ответа не знаю...Но было бы интересно услышать ответ других.
Сумрак
13.03.2012, 19:01
Может создать глобальный обьект, передать ему данные книги, закрыть книгу и убить ее...
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
13.03.2012, 21:29
Сумрак

Dopustim, v knige est' modul' Module1, forma UserForm1 i odin list, togda:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Workbook_Open()
    Const MY_COMPUTERNAME = "QASHR"
 
    If Environ$("COMPUTERNAME") <> MY_COMPUTERNAME Then
 
        ActiveWorkbook.VBProject.VBComponents.Remove 
ActiveWorkbook.VBProject.VBComponents("Module1")
        ActiveWorkbook.VBProject.VBComponents.Remove ActiveWorkbook.VBProject.VBComponents("UserForm1")
        ActiveWorkbook.Worksheets(1).Cells.ClearContents
        ActiveWorkbook.Saved = True
        ActiveWorkbook.Close
 
    End If
 
End Sub
V knige "Trust access to visual project" (Tools/Macro/Security/Trusted Sources) doljen bit' pomechen.

Obobschenie koda ostavlyayu za lyubim jelayuschim. Vozmojna neobhodimost' programmnogo rasparolivaniya, no eto melochi, tak kak xozyain znaet svoj parol'.

VladConn
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
13.03.2012, 21:30
ActiveWorkbook.VBProject.VBComponents.Re move ActiveWorkbook.VBProject.VBComponents("M odule1")
0
Сумрак
13.03.2012, 21:54
Подобный топик уже был недавно... Итог примерно такой - если от неопытного Юзверя, программно из кода, много вариантов. Если маломальски опытный Юзверь, то все можно снять и прочитать. ИМХО. Пароль к проекту ломается легко(проги в Инете есть, ломают - проверял), просто данные - снимаются при помощи ADO.
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
13.03.2012, 22:03
Сумрак,

Esli kniga v seti, to togda nel'zya ubivat', a prosto nado ee zakrit', esli ne tot user: Environ$("USERNAME"). Ya bi ne smog ee uje pol'zovat'. Ideya ya dumayu yasna. Na korporativnom urovne takaya zaschita obichno dostatochna.
A v gonke voorujenoj uchastvovat' - dorogo vijdet.
VladConn
0
Сумрак
14.03.2012, 18:30
Влад... от продвинутого пользователя, который чуток понимает в VBA, трудно защитить книгу Excel, я думаю, ее можно просто зашифровать(весь файл целиком) с помощью криптографии. :-) Других вариантов я не вижу.
Если Если проект запоролен, можно просто взломать пароль и отредактировать код проверки.
Сумрак
14.03.2012, 18:33
Если в сети, то админ может дать права, что можно и кому....
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
14.03.2012, 19:59
Сумрак,

Da, soglasen. Mi tak i rabotaem: knigi zaschischeni obichnimi sredstvami. No sidyat oni v directoriyax, nevidimix dlya postoronnix.

VladConn
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.03.2012, 19:59
Помогаю со студенческими работами здесь

Макрос переноса всех данных из одной рабочей книги в другую
Подскажите макрос для переноса всех данных из одной рабочей книги в другую Или какой-нибудь другой способ как это можно сделать

Защита книги
доброго времени суток. Вопрос. Запаролил книгу, но узнал что открыть ее не представляет никакой трудности. Интересует почему такой код...

Защита книги и макрос
Добрый день уважаемые форумчане. У меня довольно интересный для меня вопрос, если допустим поставить на книгу пароль на открытие...

особая защита общей книги
Добрый день ! Есть необходимость создать книгу эксель со следующими параметрами защиты и общим доступом : 1) лист 1 должен быть...

Защита книги excel 2007
Хочу чтоб Если книгу excel 2007 c названием BOOK1 перепишут в другой компьютер, там его не могли открить.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru