Записать файл в файл!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Записать файл в файл!

Сообщение GPP » 21.10.2006 (Сб) 8:47

Задача такова! Есть файл *.exe но для его работы требуется *.ocx не зарегистрированный в системе. Как сделать к примеру так:
1. Зашить *.ocx файл в *.exe
2. При запуске *.exe "вышивает" *.ocx
3. Копирует его в системную папку и регистрирует в системе.
4. Далее программа используя этот .ocx продолжает работу...

Заранее огромное спасибо.
GPP(c) Gorlo Pavel Programming

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 21.10.2006 (Сб) 8:55

1. Зашить *.ocx файл в *.exe

может программа под название Fusion
2. При запуске *.exe "вышивает" *.ocx
3. Копирует его в системную папку и регистрирует в системе.
4. Далее программа используя этот .ocx продолжает работу...

для этого нужно использовать Setup. Сделать можно при помощи Setup Factory - очень рекомендую (все библиотеки зарегистрирует сам)

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Сообщение GPP » 21.10.2006 (Сб) 8:57

Надо именно по средствам VB 6
GPP(c) Gorlo Pavel Programming

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 21.10.2006 (Сб) 9:41

Магическое слово "ресурсы"

1. Записываешь *.ocx в ресурсы
2. Вытаскиваешь при запуске этот ресурс
3. Записываешь файл в нужное место
4. Регишь

ну и так далее...

Или да, Fusion!
Весь мир матрица, а мы в нем потоки байтов!

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Сообщение GPP » 21.10.2006 (Сб) 9:45

как запихнуть его в ресурсы?
GPP(c) Gorlo Pavel Programming

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.10.2006 (Сб) 9:53

Addins - Addin manager - VB6 Resource Editor
Лучший способ понять что-то самому — объяснить это другому.

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Сообщение GPP » 21.10.2006 (Сб) 9:59

Ну и каким образом мне запихнуть туда MSWINSCK.OCX? Скопировать в системную папку и потом зарегить? :D
GPP(c) Gorlo Pavel Programming

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 21.10.2006 (Сб) 10:05

Гы!

Даже методом тыка при открытом реадкторе ресурсов можно додумать что же нажать, чтобы поместить в ресурсы произвольный файл!
Add Custom Resource... жми
Весь мир матрица, а мы в нем потоки байтов!

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Сообщение GPP » 21.10.2006 (Сб) 10:17

ну и как потом это все вытащить?
GPP(c) Gorlo Pavel Programming

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 21.10.2006 (Сб) 10:35

Зацени функцию LoadResData.
Получишь массив байтов, сохраняешь его как файл в нужном месте... и так далее
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 21.10.2006 (Сб) 11:19

а регистрация типа так

Код: Выделить всё
Public Declare Sub Sleep Lib "KERNEL32" (ByVal dwMilliseconds As Long)
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Call ShellExecute(hwnd5, vbNullString, "regsvr32.exe", Chr(34) & "путь к файлу" & Chr(34) & " /s", "C:\WINDOWS\system32\", 0)
Sleep 1000


Зачем Sleep? А затем, чтобы дождаться пока файл зарегится
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

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

Сообщение tyomitch » 21.10.2006 (Сб) 11:36

MIT писал(а):а регистрация типа так

Код: Выделить всё
...


Зачем Sleep? А затем, чтобы дождаться пока файл зарегится

Ну просто гениально... Нет слов :roll:

Некривой способ: http://bbs.vbstreets.ru/viewtopic.php?p=94185#94185
Изображение

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Сообщение GPP » 21.10.2006 (Сб) 13:51

А если файл больше 64 грамм. :lol:
GPP(c) Gorlo Pavel Programming

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Сообщение GPP » 21.10.2006 (Сб) 14:00

Пробовал так но не чего не получилось файл создается пустой!
Dim a() As byte
a = LoadResData(101, 10)

Open "C:\MSWINSCK.OCX" For Binary As #1
Put #1, , a
Close #1
GPP(c) Gorlo Pavel Programming

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 21.10.2006 (Сб) 14:01

tyomitch
И чем тебя мой способ не устроил?
Тем более зачем изобретать велосипед?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 21.10.2006 (Сб) 15:33

У меня есть исходники компонента (компонент не мой), по функциям аналогичный винсоку, но занимает меньше места. Его просто добавляешь в проект и работаешь с ним как с винсоком. Написан полностью на API.
Вложения
VBSocket1A.rar
VBSocket - альтернатива винсоку
(3.15 Кб) Скачиваний: 79
Подпись проходит рефакторинг

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

Сообщение tyomitch » 21.10.2006 (Сб) 16:41

MIT писал(а):И чем тебя мой способ не устроил?

Тем, что неоправданная задержка на секунду.


MIT писал(а):Тем более зачем изобретать велосипед?

Вот именно. Зачем?
Нормальному способу 8 лет, а ты зачем-то выдумываешь свой.
Изображение

X-hacker
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 26.08.2006 (Сб) 1:22
Откуда: Moldova

Сообщение X-hacker » 11.11.2006 (Сб) 19:50

По поводу .OCX B .EXE: Поиск по слову "Powerwrap" даже на том же Mail.ru!

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 11.11.2006 (Сб) 21:06

эээээ А чем кого то не устраивает функция Shell, которая ПРИСУТСТВУЕТ в msvbvm60.dll тем самым стандартная для VB6?
Я чувстую что ответ будет нужно дождаться завершения проги.... Этот способ легко обходится без АПИ тоже. :wink:

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 11.11.2006 (Сб) 21:10

О. ну да. файл можно наскоко я знаю не пихать в ресурсы, а значит он останется незамеченным там, например Resource Hacker-ом... Делается это путем добавления его после PE формата exe если я правильно выражаюсь. Способ придумал сам давно когда то.... Получается такой файл :
MZ(PE файл)MZ(ocx)formated-Размер(ocx).
считать можно, записать файл и зарегестрировать. :lol:


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Majestic-12 [Bot], Yandex-бот и гости: 139

    TopList