изменить exe-файл?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zah
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 22.08.2006 (Вт) 22:31

изменить exe-файл?

Сообщение zah » 22.08.2006 (Вт) 22:39

Скажите, можно ли изменять и сохранять в процессе исполнения exe-файл, созданный в VB без прибегания к дополнительным файлам.
Например, создать программу из двух форм: первая - видимая, вторая невидимая.
Во второй форме имеется, скажем, label, значение caption которого может меняться. Это значение будет использоваться программой при исполнении. Можно ли сделать так, чтобы измененное значение caption было сохранено и при последующем открытии exe-файла использовалось уже новое значение.
Спасибо.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.08.2006 (Вт) 23:05

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

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

Сообщение Хакер » 23.08.2006 (Ср) 0:36

zah
Ну если уж так хочется - можешь хранить всё в самом EXEшнике.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zah
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 22.08.2006 (Вт) 22:31

Ну так можно обойтись без дополнительного файла?

Сообщение zah » 23.08.2006 (Ср) 3:36

Ну так можно обойтись без дополнительного файла?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 23.08.2006 (Ср) 7:14

нет
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 23.08.2006 (Ср) 7:29

можно, но ненужно.
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 23.08.2006 (Ср) 7:35

Хакер писал(а):zah
Ну если уж так хочется - можешь хранить всё в самом EXEшнике.


а как кстати (можно например использовать для создания вирусного маркетинга - веб мастер вставляет свою ссылку с описанием и заинтересованно раздаёт программу своим посетителям)
Мой сайт http://mentalprograms.narod.ru/ - бесплатные развивающие программы

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 23.08.2006 (Ср) 7:53

vvs_adm писал(а):можно, но ненужно.
Уж поделитесь как...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 23.08.2006 (Ср) 8:57

ANDLL писал(а):Уж поделитесь как...
Да ради бога :)
Код: Выделить всё
Option Explicit

Private Sub Command1_Click()
    Dim bByte() As Byte
    Open "C:\test1.exe" For Binary As #1
        ReDim bByte(LOF(1) - 1)
        Get #1, , bByte
    Close #1
   
    ReDim Preserve bByte(UBound(bByte) + 2)
    bByte(UBound(bByte) - 1) = CByte(Asc(";"))
    bByte(UBound(bByte)) = CByte(Asc(")"))
   
    Open "C:\test2.exe" For Binary As #1
        Put #1, , bByte
    Close #1
End Sub

Private Sub Command2_Click()
    Dim bByte() As Byte
    Open "C:\test2.exe" For Binary As #1
        ReDim bByte(LOF(1) - 1)
        Get #1, , bByte
    Close #1
    MsgBox Chr$(bByte(UBound(bByte) - 1)) & Chr$(bByte(UBound(bByte)))
End Sub
Ну test2.exe перед запуском не должно существовать...
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 23.08.2006 (Ср) 9:22

vvs_adm
Это наверное неудчаная шутка?
zah писал(а):Ну так можно обойтись без дополнительного файла?
ANDLL писал(а):нет
vvs_adm писал(а):можно, но ненужно.
Интересно, код который ты привел, он вообще тут к какому месту?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 23.08.2006 (Ср) 11:57

Ну так ты его запусти и посмотришь. Он создает работоспособную копию exe, в конец которого дописаны данные ( ";)" ). Их при старте спокойно можно считывать для инициализации формы. Конечно, так как изменить нужно саму себя, а не копию, то без временного файла не обойдешься, но временный файл - это как бы не совсем дополнительный, во всяком случае автор имел ввиду не используя ini-файл.... В принципе может можно и без временного, но мне пофигу, как это делается.
Последний раз редактировалось vvs_adm 23.08.2006 (Ср) 12:01, всего редактировалось 1 раз.
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

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

Сообщение Хакер » 23.08.2006 (Ср) 11:59

Блин, шутники.
Вы о записи в конец EXE-файла слышали?

[так, vss_adm меня опередил. Тогда ладно. Но всё равно скажи - зачем временный файл ]
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 23.08.2006 (Ср) 12:02

мы о нем и написали...
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

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

Сообщение Хакер » 23.08.2006 (Ср) 12:46

Я про ANDLL.
Объясни всё таки зачем временный файл?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 23.08.2006 (Ср) 12:59

Хакер
Пока мы еще не увидели примера, в котором обходятся БЕЗ временного файла.
Кстати, есть еще реестр :)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 23.08.2006 (Ср) 16:25

Реестр? Ак "файл-без-которого-прога-не-идёт"?

VB-constructor
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.07.2006 (Пн) 21:37
Откуда: Ростов-на-Дону

Сообщение VB-constructor » 23.08.2006 (Ср) 19:45

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

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

Сообщение Хакер » 23.08.2006 (Ср) 20:04

1) Через АПИ нет ничего страшного, поверь :)
2) Допустим челу надо сделать exe шник который "странствует" по компам и собирает на них какую либо информацию (например ФИО того, кто его запустим, и просит передать 5-ти своим друзьям). Тогда единственное что остаётся - хранить всё в EXE.

(Для тех кто попытается со мной поспорить :x - посмотрите в название темы)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 23.08.2006 (Ср) 20:22

Debugger писал(а):Реестр? Ак "файл-без-которого-прога-не-идёт"?

Значит, второе? Проверка на наличие файла через Dir? Иль фиксированный файл? И суперустановщик, который сосед запускает, скрепляюший файлы воедино? Для следующего соседа?

Захарик
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.07.2006 (Пн) 22:44
Откуда: Россия

Мужики, Вы забыли про чайника.

Сообщение Захарик » 24.08.2006 (Чт) 22:16

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


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 130

    TopList