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)