Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Изменить ресурс в своём же экзешнике. Добавлено: 21.02.10 17:05  

Автор вопроса:  Zahar | Web-сайт: partnerka-ru.info
Скажем, я написал программу на VB6, которая использует картинку, хранящуюся в ресурсе исполняемого файла.
Теперь хочу написать программку (вторую), которая в первой могла бы заменять эту картинку на другую, выбранную пользователем.
Ещё раз: у меня 2 проги в виде exe-файлов (обе мои, ничего взламывать не собираюсь). Как при помощи одной изменить картинку, хранящуюся в ресурсе другой? Чтобы при загрузке в основной программе была уже новая картинка.
Поготите, пожалуйста...

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #1 Добавлено: 21.02.10 18:16
а тебе обязательно изменять ресурсы проги?
мож проще извлечь картинку из ресурсов а 2 прога пусть уже грузит эту картину
если обязательно - советую поискать примеры чтения и изменения тэгов mp3

Ответить

Номер ответа: 2
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #2 Добавлено: 21.02.10 18:24
вот пример сохранения картинки из ресурсов:
  1.  
  2. Dim B() As Byte
  3. B = LoadResData(101, "CUSTOM")
  4. Open App.Path & "\temp.bmp" For Binary As #1
  5. Put #1, , B()  ' для получения - Get
  6. Close #1


p.s. спасибо Smith'у за помощь в написании данного кода

Ответить

Номер ответа: 3
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #3
Добавлено: 21.02.10 20:45
Сохранять на диск иногда не представляется возможным.
А ты не хочешь картинку в конец exe запихнуть, а потом от туда грузить? Тамже её удобно и заменять.

Ответить

Номер ответа: 4
Автор ответа:
 Zahar



Вопросов: 91
Ответов: 67
 Web-сайт: partnerka-ru.info
 Профиль | | #4
Добавлено: 21.02.10 22:36
Just пишет:
вот пример сохранения картинки из ресурсов:
  
Dim B() As Byte

B = LoadResData(101, "CUSTOM";)

Open App.Path & "\temp.bmp" For Binary As #1

Put #1, , B() ' для получения - Get

Close #1


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

AWP пишет:
Сохранять на диск иногда не представляется возможным.
А ты не хочешь картинку в конец exe запихнуть, а потом от туда грузить? Тамже её удобно и заменять.


Если можно - подробнее...

Ответить

Номер ответа: 5
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #5 Добавлено: 21.02.10 22:51
Я, видимо, слишком мало описал то, что мне надо - двух раз не достаточно, чтобы понять.


ты видимо не ценишь помощь!
и плюс ко всему сам не догоняешь, что я дал то, что ты просил, только не полностью и не в исходнике

Ответить

Номер ответа: 6
Автор ответа:
 Zahar



Вопросов: 91
Ответов: 67
 Web-сайт: partnerka-ru.info
 Профиль | | #6
Добавлено: 21.02.10 23:31
Just пишет:
ты видимо не ценишь помощь!
и плюс ко всему сам не догоняешь, что я дал то, что ты просил, только не полностью и не в исходнике


Извини, если обидел. Дело в том, что в своей проге я приведенный тобою код использую много раз, для того, чтобы загружать в просматриваемые в WebBrowser html-страницы (хранящиеся в ресурсе экзешника) графику (опять же хранящуюся в ресурсе этого же экзешника). Но хоть убей, не могу понять, как с помощью этого же кода можно изменить exe-файл.
Может быть этот кусочек кода является частью кода, решающей мою проблему, но боюсь, что это далеко не основная часть. Объясни подробнее, есмли можешь...

Ответить

Номер ответа: 7
Автор ответа:
 UnDeAdZak



Вопросов: 80
Ответов: 476
 Профиль | | #7 Добавлено: 21.02.10 23:39
Just, он говорит, что в уже скомпилированный экзешник надо запихнуть картинку, а ты даёш, насколько я глупый понимаю, код для загрузки кода в самом проэкте.

Ответить

Номер ответа: 8
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #8 Добавлено: 21.02.10 23:55
Я даю пример кода как из ресурсов скомпелированного exe извлечь bmp и сохранить его на жесткий

далее я предложил его просто как картинку загружать, если подходит такой вариант - если нет смотреть пример с mp3 тегом (в поиске: Get + Set ID3)

там показано как загрузить скажем первые 128 байт с конца и + ипроверить если ключевое слово совпадет (можно сделать метку в файле где начало ресурсов) то записывать

вот часть кода:
  1.  
  2.     If fsize >= 128 Then
  3.         SetFilePointer fh, fsize - 128, 0, FILE_BEGIN
  4.         ReadFile fh, rdBuf(0), 3, 0, ByVal 0
  5.         If Data2String(VarPtr(rdBuf(0)), 3, ENC_ISO) = "TAG" Then



Ответить

Номер ответа: 9
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #9 Добавлено: 22.02.10 00:06
если не найдешь - прямая ссылка на простой пример работы с тэгами:
http://www.freevbcode.com/code/ID3Tag.zip

Ответить

Номер ответа: 10
Автор ответа:
 Zahar



Вопросов: 91
Ответов: 67
 Web-сайт: partnerka-ru.info
 Профиль | | #10
Добавлено: 22.02.10 00:07
UnDeAdZak пишет:
Just, он говорит, что в уже скомпилированный экзешник надо запихнуть картинку, а ты даёш, насколько я глупый понимаю, код для загрузки кода в самом проэкте.


Вот именно это я и имею в виду...

Ответить

Номер ответа: 11
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #11 Добавлено: 22.02.10 00:21
Толи я дурак, толи лыжи не едут...
чем тебе не подходит пример чтение\запись mp3 тегов?
тем что это mp3? )
или тем что там не написано как полностью заменять ресурсы?

Ответить

Номер ответа: 12
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #12
Добавлено: 22.02.10 01:14
Ещё раз: у меня 2 проги в виде exe-файлов

Толи я дурак, толи лыжи не едут...
чем тебе не подходит пример чтение\запись mp3 тегов?


Ему одной прогой нужно заменить ресурс в другой.
Пиши картинку в конец файла, а загружай вот так
http://vbnet.ru/forum/show.aspx?id=182899

Ответить

Номер ответа: 13
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #13 Добавлено: 22.02.10 10:28
я промолчу...
хотя, нет! я все скажу! ))
в самом начале автор вопроса писал что проги его, так почему бы не изменить саму прогу шоб она сама грузила рисунок из папки

и 2-е:
пример классный, но как я понял, это на тему как загрузить не сохраняя временный файл на жестком (зачем мучить API если можно картинку сбрасывать в тот же темп, только не надо писать что а вдруг винт заблокирован или его нет - тогда вообще языком программирования автор ошибся)
все равно из тех же многострадальных примеров с mp3 надо смотреть как побайтово записывать в exe

впрочем, может конечно дело и не в лыжах... )

Ответить

Номер ответа: 14
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #14
Добавлено: 22.02.10 10:36
Zahar, в поиск по форуму, примеры кода по обновлению ресурсов тут выкладывали, и я в том числе. Вроде :) В любом случае, если не найдешь, BeginUpdateResource по этому ключевому слову можно поискать в интернете :)

Ответить

Номер ответа: 15
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #15
Добавлено: 22.02.10 12:53
впрочем, может конечно дело и не в лыжах... )
Дело не в лыжах, а как и куда их положить.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам