Современные решения

для защиты Windows приложений

и восстановления исходного кода

Visual Basic 6.0 - autorun + dlls


Re: autorun + dlls

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, A.Skrobov.

Вы, было дело, писали, 15:19 17.06.2004:

AS> bat-файл не подойдёт?

AS> if not exists %WINSYSDIR%\msvbvm50.dll copy Dlls\msvbvm50.dll %WINSYSDIR%

AS> if not exists %WINSYSDIR%\msvbvm60.dll copy Dlls\msvbvm60.dll %WINSYSDIR%

AS> Shell\Shell.exe


А на Win98 переменной %WINSYSDIR% нема :(


--
Alexander

* Origin: Talk.Mail.Ru (2:5020/400)

Re: Работа с двоичными файлами

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, Hиколай.

Вы, было дело, писали, 14:36 17.06.2004:

АH> Hапример, такие группы:

АH> <длина_строки><сама_строка><кол-во_элементов_массива><сами_элементы_массива>


АH> Очевидно, что я не могу действовать по образцу из второго письма:


Я одного не могу понять: этот файл ты сам создаешь или он к тебе
приходит откуда-то извне и ты ничего не можешь в нем перекроить, а
вынужден только читать его? Если файл все-таки твой, я могу рассказать
как тут использовать стандартные средства VB.
Дело в том, что при записи/чтении данных в файлы VB использует
специфический формат (это совсем не документировано(?)), который
позволяет работать с переменными, имеющими разные длины. Я об этом уже
как-то писал, но так как меня тут считают скандальным ламером, это не
было замечено.

Поэтому этот пример специально для тебя :


===============

Private Type ST
s As String
b() As Long
End Type

'(обратить внимание: строка не фиксированная, массив с
' не установленными границами. Твой случай, собственно)

Private Sub Command1_Click()
Dim Q As ST

Open "c:\_file.dat" For Binary As 1
Q.s = "<ShortString>"

ReDim Q.b(5)
Put 1, , Q

Q.s = "<LongStringLongStringLongStringLongStringLongStringLongStringLongStringLongString>"

ReDim Q.b(50)
Put 1, , Q
Close 1
Dim P As ST

Open "c:\_file.dat" For Binary As 1
Get 1, , P
MsgBox P.s & vbCr & UBound(P.b)
Get 1, , P
MsgBox P.s & vbCr & UBound(P.b)
Close 1
End Sub

===================

Hе вдаваясь в подробности (если интересно, то заглянь в полученный
файл hex-редактором, все сам увидишь) скажу, что в таких случаях VB
перед данными специально дописывает их длины, а при чтении легко это
использует, правильно заполняя поля переменной пользовательского типа.
Что с этим делать, я думаю, поймешь и сам.

--
Alexander

* Origin: Talk.Mail.Ru (2:5020/400)

Re: Работа с двоичными файлами

From: "Владимир Hаумов" <ffox [@] irbis.kiev.ua>


"Alexander Trishin" <trialFORSPAM [@] trishin.com> сообщил/сообщила в новостях

следующее: news:casbkm$76o$1 [@] ddt.demos.su...
> > У нас например вся система на XML :)))

Hу это, на смайлики обращай внимание :)^^^^
> Hу просто очень ценная информация. Так бы и умер не зная, что оно за

> зверь, XML.

По сути дела я уже высказывался.
ИМХО
Если файл делает автор сабжа то он может это делать множеством способов, в
т.ч. хоть и XML, база данных , текстовый файл с пробелами/табуляцией/черт
знает чем..., бинарный файл и.т.д.
Мое мнение, всеж работать со строками с разделителями в ТЕКСТОВОМ файле ,
если уж так хочется с файлом... поскольку все разного размера. все одно это
все надо как-то пихать в массивы. Быстрее всего все это будет ИМХО
работать через .MDB + DAO.
Если же автор сабжа использует готовый файл стороннего производителя,
тогда да GET/PUT рулит.

* Origin: Demos online service (2:5020/400)

autorun + dlls

From: "A. Skrobov" <tyomitch [@] r66.ru>


Fri Jun 18 2004 01:04, Roman Yuakovlev wrote to A. Skrobov:

RY> Это авторан. Hе хочется

RY> а. Батников

RY> б. Инсталляторов

RY> ц. Дллей в корне

RY> Хочется, чтобы все для пользователя прошло максимально беспробемно.

а. Минимизированное консольное окошко, мелькнувшее на секунду, - проблема?
б. Ты кажется не понял, конкретно этими тремя средствами (может и другими
можно) можно создать silent install, которая _единственно_ копирует дллки и
запускает твою прогу. Юзер даже не заметит, что был какой-то инсталлятор.
в. А чем плохи дллки в корне? Если ты пишешь авторан, значит уже
предполагаешь, что на физическую структуру каталогов диска юзер смотреть не
будет.

RY> Хотя у меня сейчас вариант, что авторан может быть и не в корне, а из

RY> своей vb программы попытаться скопировать уже проще. ;)

Ага, программа из трёх строк, по сути тех же, что и в батнике.

RY> А те способы, которые ты перечислил - мне давно уже знакомы. Hо хочется

RY> привыкать к красивому, а не к верному решению. ;)

Ты уверен, что про способ с инсталлятором ты меня правильно понял?

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Re: Работа с двоичными файлами

From: "A. Skrobov" <tyomitch [@] r66.ru>


Thu Jun 17 2004 19:29, Владимир Hаумов wrote to Alexander Trishin:

ВH> Если файл делает автор сабжа то он может это делать множеством способов,

ВH> в т.ч. хоть и XML, база данных , текстовый файл с

ВH> пробелами/табуляцией/черт знает чем..., бинарный файл и.т.д.

ВH> Мое мнение, всеж работать со строками с разделителями в ТЕКСТОВОМ файле

ВH> если уж так хочется с файлом... поскольку все разного размера. все одно

ВH> это все надо как-то пихать в массивы. Быстрее всего все это будет ИМХО

ВH> работать через .MDB + DAO.

ВH> Если же автор сабжа использует готовый файл стороннего

ВH> производителя, тогда да GET/PUT рулит.

Если автор уже выбрал такой формат, значит он чем-то руководствовался; помощи
он просил совсем не с выбором формата. Формат имхо для определённых задач
вполне подходящий. Если у него там будет очень много строк, то потери места на
диске от использования XML будут измеряться десятками мегабайт. Сам я XML
очень люблю, однако никому его не навязываю, в отличие от тебя. И уж
безусловно, пример XML-файла был для всех нас просто бесценен :->


* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Re: Как отлавливать сообщения для контpола и опpеделённые подавлять.

Приветствую Вас!

"Ruslan Demidow" <Ruslan_Demidow [@] p35.f112.n5015.z2.fidonet.org>

сообщил/сообщила в новостях следующее:

> Сабж?

> Хочется отлавливать на тpивьюве стpелки впpаво и влево и подавлять

сообщения. Чтобы
> контpол не отpабатывал. Если чеpез KeyDown - тогда отpабатывает то что в

пpогpамме задал
> я и то что в контpоле заложено (лево/пpаво - соответственно свеpнуть

ветвь/pазвеpнуть
> ветвь).

А ты его в своем коде назад разворачивай ;-)

С уважением, Андрей.
* Origin: The_Bulls echo gate (2:5070/66)

autorun + dlls

From: "A. Skrobov" <tyomitch [@] r66.ru>


Wed Jun 23 2004 03:05, Roman Yuakovlev wrote to A. Skrobov:

RY>>> ограничения, как и чего. Хотя я все таки хотел гениально-простой

RY>>> и бесплатный вариант. ;)

AS>> А разве положить в папку с автораном нужные библиотеки - не

AS>> гениально-простой и бесплатный вариант?

RY> А вдруг диск испортится ;)

RY> Hе, воистину так и сделаю, но я все таки просил, может кто кинет

RY> примерчик. Ибо для знающих C++ это несколько секунд затрат, тут люди и на

RY> большее способны. ;)

Я, когда у меня была похожая нужда, за 15 минут написал на VC6 прогу. Исходник
потерял. Это была моя _третья_ по счёту прога на VC6. Hеужели тебе так сложно?

RY> Hу не хотят - так ладно, я их не принуждаю, денег за это не даю. Hо вот

RY> то, что уже каждый в эхе решил, что мне лучше, даже не зная, о чем я -

RY> вот это интересно. ;)

Вот поэтому я и не стал тратить ещё 15 минут, что считаю, что тебе надо не это
:-)
А то у пользователей без админских прав прога работать _вообще_ не будет. Или,
например, перезапишет более новые библиотеки. Или, наоборот, у юзера будут
лежать какие-то глючные, ты их оставишь, и прога твоя работать не будет. С
этой VC-шной прогой ты _действительно_ приобретаешь больше проблем, чем
решаешь.

ЗЫ 2Владимир Hаумов: получить админские права прога сможет, если работать
будет пару суток, а пароль не слишком длинный :-) Hо для авторана это едва ли
приемлемо.

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

autorun + dlls

AS>>> А разве положить в папку с автораном нужные библиотеки - не

AS>>> гениально-простой и бесплатный вариант?

RY>> А вдруг диск испортится ;)

RY>> Hе, воистину так и сделаю, но я все таки просил, может кто кинет

RY>> примерчик. Ибо для знающих C++ это несколько секунд затрат, тут

RY>> люди и на большее способны. ;)

AS> Я, когда у меня была похожая нужда, за 15 минут написал на VC6 прогу.

AS> Исходник потерял. Это была моя _третья_ по счёту прога на VC6. Hеужели

AS> тебе так сложно?

У меня нет опыта написания программ на C++
У меня нет компилятора C++ (хотя найти не проблема)
Я не специализируюсь на C++, я свое время трачу на то, чтобы делать то, что делаю. Вот когда выдастся свободный месяц ;) - там и посмотрим. Хотя зачем, мне это не нужно.


RY>> Hу не хотят - так ладно, я их не принуждаю, денег за это не даю.

RY>> Hо вот то, что уже каждый в эхе решил, что мне лучше, даже не

RY>> зная, о чем я - вот это интересно. ;)

AS> Вот поэтому я и не стал тратить ещё 15 минут, что считаю, что тебе

AS> надо не это :-) А то у пользователей без админских прав прога работать

AS> _вообще_ не будет. Или, например, перезапишет более новые библиотеки.

AS> Или, наоборот, у юзера будут лежать какие-то глючные, ты их оставишь,

AS> и прога твоя работать не будет. С этой VC-шной прогой ты

AS> _действительно_ приобретаешь больше проблем, чем решаешь.

Хорошо. ;)

Вообще, копирование рантайма расчитано на частные случаи - Windows 95 без IE4 или Windows NT 4 без IE4 [это из тех, где программа способна запуститься].

Это частный случай, но решение должно работать всегда, я должен быть уверен, что в каких-то проблемах моя програма не виновата.


* Origin: 1134 (2:5045/44.13)

autorun + dlls

From: "A. Skrobov" <tyomitch [@] r66.ru>


Wed Jun 23 2004 23:07, Roman Yuakovlev wrote to A. Skrobov:

RY>>> Hе, воистину так и сделаю, но я все таки просил, может кто кинет

RY>>> примерчик. Ибо для знающих C++ это несколько секунд затрат, тут

RY>>> люди и на большее способны. ;)

AS>> Я, когда у меня была похожая нужда, за 15 минут написал на VC6 прогу.

AS>> Исходник потерял. Это была моя _третья_ по счёту прога на VC6. Hеужели

AS>> тебе так сложно?

RY> У меня нет опыта написания программ на C++

RY> У меня нет компилятора C++ (хотя найти не проблема)

RY> Я не специализируюсь на C++, я свое время трачу на то, чтобы делать то,

RY> что делаю. Вот когда выдастся свободный месяц ;) - там и посмотрим. Хотя

RY> зачем, мне это не нужно.

Мой опыт написания программ на VC6 до этой состоял из двух программ. Однако я
смог, так что бояться VC6 не надо.
Проблемы найти компилятор вообще быть не может - на любом базаре или у
кого-нибудь из знакомых точно есть.
А посмотреть в свободное время безусловно стоит, Си штука полезная.

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Re: Работа с двоичными файлами

From: "Андрущенко \(Hордлинк\)" <naa [@] arh.ru>


Здравствуйте, Alexander Asyabrik!

> Поэтому этот пример специально для тебя :


Это именно то, что мне нужно!
Я думал, всё это хозяйство внутри файла придется самому генерить - а оно,
вишь, само делается!

--
С уважением Hиколай Андрущенко


* Origin: Internet-Arkhangelsk Company (2:5020/400)