Небольшая,но полезная идея

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
asm VS vb
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 23.06.2006 (Пт) 15:27
Откуда: 02

Небольшая,но полезная идея

Сообщение asm VS vb » 02.07.2006 (Вс) 17:25

У меня есть идея насчет контролов и сторонних OCX,которые нужно за собой таскать приложениям VB.
Эта идея заключается в следующем.Дабы не таскать с приложениями необходимые контролы(OCX файлы),их можно включить в само приложение,которое потом извлечет эти OCX файлы и сохранит их в директории System32.
Ну например нужно затащить код контрола COMCTL32.OCX(чтобы использовать его функции) в приложение Project1.exe,чтобы потом приложение само извлекло этот контрол и сохранило его.
Для этого поступаем следующим образом

Код: Выделить всё
Dim code1 As String, code2 As String
Open "C:\VB\Project1.exe" For Binary As #1
code1 = Space$(LOF(1))
Get #1, , code1
Close #1
Open "C:\VB\COMCTL32.OCX" For Binary As #1
code2 = Space$(LOF(1))
Get #1, , code2
Close #1
Open "C:\VB\Project1.exe" For Output As #1
Print #1, code1 & code2
Close #1


Полдела есть,теперь положим код в само приложение для извлечения контрола на уровне инициализации:

Код: Выделить всё
Private Sub Form_Initialize()
Private Declare Function GetSystemDirectoryA Lib "kernel32" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Dim fso As Object, sfo As Object
Dim lpBuffer As String, mypath As String
Dim SysDr As String, code1 As String, code2 As String, code3 As String, code4 As String
lpBuffer = Space(260)
If Right(App.path, 1) <> "\" Then
mypath = App.path & "\"
Else
mypath = App.path
End If
Set fso = CreateObject("scripting.filesystemobject")
SysDr = Left$(lpBuffer, GetSystemDirectoryA(lpBuffer, 260))
If fso.FileExists(SysDr & "\" & "COMCTL32.OCX") Then 'Проверяем есть ли уже там этот контрол
Call InitCommonControls
Else 'Если нет, то читаем из конца нашего приложения
Open mypath & App.EXEName & ".exe" For Binary As #1
code1 = Space$(LOF(1))
Get #1, , code1
Close #1
code2 = Right$(code1, 609824 + 2) 'Читаем байты,609824-это размер  кода контрола в байтах
Open SysDr & "\" & "COMCTL32.OCX" For Output As #1
Print #1, code2        'Пишем прочтенные байты
Close #1
Call InitCommonControls
End If
End Sub


Все теперь все автоматизированно! Надеюсь,я все правильно изложил и ничо не забыл
Новое толкование теории эволюции: когда первая обезьяна взяла в руки палку, остальные начали трудиться.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.07.2006 (Вс) 17:42

...и прога будет работать только под администратором. Чудесно.


Что за проги вы все пишете -- такие, что инсталляторов как огня боитесь?
Не иначе трояны? :-?
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.07.2006 (Вс) 17:49

Касательно твоего кода:
1. Есть оператор Seek, нужный затем, чтобы не читать весь файл, когда нужна только часть.
2. Есть функция Dir, нужная затем, чтобы не проверять наличие файла через FSO.
3. Оператор Print дописывает в файл перевод строки. В результате в твоём COMCTL32.OCX в конце окажется мусор.
Изображение

asm VS vb
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 23.06.2006 (Пт) 15:27
Откуда: 02

Сообщение asm VS vb » 02.07.2006 (Вс) 17:54

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

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 02.07.2006 (Вс) 18:16

Я предпочитаю делать Register.exe для программ использующих сторонние библиотеки и контролы ) :wink:
#define ROFL 0xDDDD

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.07.2006 (Вс) 18:19

Лишняя пара мегабайт отжираемой оперативы, лишняя используемая библиотека, и оставляемый в файле мусор -- это не стиль, это небрежность.

Может, ты по улице тоже ходишь рваный и мятый, и говоришь всем, что это твой стиль?
Изображение

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 02.07.2006 (Вс) 18:21

Эх... как страшно!!! :twisted:
#define ROFL 0xDDDD

asm VS vb
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 23.06.2006 (Пт) 15:27
Откуда: 02

Сообщение asm VS vb » 02.07.2006 (Вс) 18:32

Лишняя пара мегабайт отжираемой оперативы, лишняя используемая библиотека, и оставляемый в файле мусор -- это не стиль, это небрежность.

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

Нет.Сравнения можно было не приводить :))) :lol: :lol: :lol:
Новое толкование теории эволюции: когда первая обезьяна взяла в руки палку, остальные начали трудиться.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 02.07.2006 (Вс) 18:35

Просто для меня важно не то сколько там грязи в файле или мусора или еще чего-нибудь,а главное чтоб работало и ведь работает.А все остальное мелочи к которым разные люди относятся по разному

ничего себе тебе не важно! :shock: :shock:
#define ROFL 0xDDDD

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 02.07.2006 (Вс) 18:37

Кому это надо я не знаю! Например мне нет. см. выше
#define ROFL 0xDDDD

asm VS vb
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 23.06.2006 (Пт) 15:27
Откуда: 02

Сообщение asm VS vb » 02.07.2006 (Вс) 19:03

Да,насчет мусора это верно.Но ведь это ни коим образом не влиет на работу контрола!!!
Новое толкование теории эволюции: когда первая обезьяна взяла в руки палку, остальные начали трудиться.

Approximator
Постоялец
Постоялец
 
Сообщения: 572
Зарегистрирован: 26.06.2004 (Сб) 3:10

Сообщение Approximator » 02.07.2006 (Вс) 21:31

tyomitch писал(а):Лишняя пара мегабайт отжираемой оперативы, лишняя используемая библиотека, и оставляемый в файле мусор -- это не стиль, это небрежность.

Может, ты по улице тоже ходишь рваный и мятый, и говоришь всем, что это твой стиль?


Нестрашно, если он будет так ходить, страшно другое: к великому сожалению таких берут в soft-прогеры :(. И потом сидишь и думаешь, переделать всё самому (а это софт под х..ову кучу устройств; ёпрст, ну, не писать же всё самому) или продолжать его (такого soft-прогера) материть :?.
С уважением, Approximator.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 02.07.2006 (Вс) 22:34

контрола?

Что ты имеешь ввиду?
#define ROFL 0xDDDD

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 02.07.2006 (Вс) 23:22

Делая программы на VB, прогер изначально обречен на создание инсталяторов или таскание за собой кучи OCX-ов. Остальные способы конечно приемлемы, но, ИМХО, являются извратом. Нет желания таскать за собой дополнительные файлы - пишите на Делфях. ИМХО.
А я все практикую лечение травами...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 02.07.2006 (Вс) 23:24

2 asm VS vb

К слову говоря - эта тема баян, обсуждалась не раз. :wink:
А я все практикую лечение травами...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 02.07.2006 (Вс) 23:57

тебе надо дать звание "Пропогандист Delphi" :wink:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 03.07.2006 (Пн) 0:53

asmVSvb
Просто есть одна вещь, непонятно почему не сказанная раннее:
Если юзер запустит твою прогу и она заменит файлы в system32 более ранними версиями, то многие другие проги откажуться работать.. за что тебе голову оторвут сразу +_+

Кстати, при замене файлов в system32 WinXP ругается и в некоторых случаях и не даст тебе этого сделать..

В общем, баянская идея плоха =(

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.07.2006 (Пн) 0:59

AjaxVS, у него, наоборот, существующий файл никогда не заменяется.
Даже если он сам слишком старый.
Изображение

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 03.07.2006 (Пн) 1:06

А, точно, не заметил...
А не возникнет ли тогда проблема, что его прога будет нуждаться в новой версии .dll/.ocx?

Я лично (если только не выкладываю в Инете) таскаю с .exe все используемые библы, чего и вам советую..

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 03.07.2006 (Пн) 1:15

Хумор:
для тех кто считает что в таскании вместе с прогой кучи библ есть что то стыдное:

откройте system32 и посмотрите, сколько их с собой таскает винда :lol: :lol: :lol:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

asm VS vb
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 23.06.2006 (Пт) 15:27
Откуда: 02

Сообщение asm VS vb » 03.07.2006 (Пн) 7:12

Approximator

Что это значит <продолжать его (такого soft-прогера) материть?>,обьясни может я чото не понял :?: :?: :?:
Новое толкование теории эволюции: когда первая обезьяна взяла в руки палку, остальные начали трудиться.

asm VS vb
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 23.06.2006 (Пт) 15:27
Откуда: 02

Сообщение asm VS vb » 03.07.2006 (Пн) 7:15

tyomitch

AjaxVS, у него, наоборот, существующий файл никогда не заменяется.
Даже если он сам слишком старый.


Не хочешь ли ты сказать,что если там старая версия контрола,то прога работать не будет со старым?
Новое толкование теории эволюции: когда первая обезьяна взяла в руки палку, остальные начали трудиться.

asm VS vb
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 23.06.2006 (Пт) 15:27
Откуда: 02

Сообщение asm VS vb » 03.07.2006 (Пн) 7:23

AjaxVS

Другие проги не откажутся работать,подумай сам.Этот способ равносилен инсталлятору,ведь он тоже заменяет файлы независимо какие они(старые,новые).Тот же случай у меня,только у меня сначала проверяет наличие файла,если нет тогда извлекает, если есть не заменяет.
Новое толкование теории эволюции: когда первая обезьяна взяла в руки палку, остальные начали трудиться.

asm VS vb
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 23.06.2006 (Пт) 15:27
Откуда: 02

Сообщение asm VS vb » 03.07.2006 (Пн) 7:24

DirectXManiac

Что ты имеешь ввиду?


То и имею ввиду.Контролы :lol: :lol: :lol: :lol:
Новое толкование теории эволюции: когда первая обезьяна взяла в руки палку, остальные начали трудиться.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 03.07.2006 (Пн) 9:26

Мда. И в чем полезность данной идеи?

Есть к примеру Fusion

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

И вообще, "контролы" были придуманы для того чтобы, не таскать их с собой ;) А как раз для наоборот.

asm VS vb
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 23.06.2006 (Пт) 15:27
Откуда: 02

Сообщение asm VS vb » 03.07.2006 (Пн) 9:39

Хотя,такая тема как сказал Twister уже была...не было смысла зря мутить воду.
Новое толкование теории эволюции: когда первая обезьяна взяла в руки палку, остальные начали трудиться.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 03.07.2006 (Пн) 11:52

asm VS vb писал(а):AjaxVS

Другие проги не откажутся работать,подумай сам.Этот способ равносилен инсталлятору,ведь он тоже заменяет файлы независимо какие они(старые,новые).Тот же случай у меня,только у меня сначала проверяет наличие файла,если нет тогда извлекает, если есть не заменяет.


asm VS vb, чудак человек, а если подумать головой? 1) Другие программы могут работать с более новой версией библиотеки, например, твоя же собственная и не будет работать. 2) За инсталляторы, которые заменяют без запроса библиотеки на несовместимые руки отрывают, с работы гонят и с компаниями судятся. 3) Тёмыч прав, поскольку софт должен не только работать, но и работать _правильно_ и не мешать работать другому софту.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 03.07.2006 (Пн) 12:40

gaidar
Вот что значит поставить нак место! :D
С этим имею дело в данный момент и поэтому говорю! Инсталяторы и регистраторы рулят!!!!!
#define ROFL 0xDDDD

asm VS vb
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 23.06.2006 (Пт) 15:27
Откуда: 02

Сообщение asm VS vb » 03.07.2006 (Пн) 13:38

Хотя,как правильно кто-то сказал лучше ваще на делфях кодить 8) 8) 8)
Новое толкование теории эволюции: когда первая обезьяна взяла в руки палку, остальные начали трудиться.

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 03.07.2006 (Пн) 13:47

А ещё лучше отсылать Дельфистов на форум про Дельфи
8) 8) 8) 8) 8)
[Место cдаётся]

След.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 130

    TopList