Копия с изменениями !?

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

Копия с изменениями !?

Сообщение ZipFeR » 01.03.2005 (Вт) 18:14

Здарова all, мне нужно сделать прогу чтобы при нажатии на кнопку
создавалась такая же прога в этой же папке, тока допустим чтобы у нее в Label1 появился какойнить текст.
Заранее спасибо !

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 01.03.2005 (Вт) 21:37

:? Э-э... Не совсем въехал в суть вопроса...
То есть ты хочешь, чтобы в папке у тебя создавался новый экзешник? Или просто запускалась новая копия проги с заданными параметрами? :scratch:
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

ZipFeR
Обычный пользователь
Обычный пользователь
 
Сообщения: 55
Зарегистрирован: 18.10.2004 (Пн) 23:14

Сообщение ZipFeR » 02.03.2005 (Ср) 23:19

Да пофигу как, МОЖНО ЧТОБЫ КОПИЯ С НОВЫМИ ПАРАМЕТРАМИ, А МОЖНО НОВЫЙ С НОВЫМИ ПАРАМЕТРАМИ, НУ ТОЕСТЬ ТАКАЕЖЕ КАК И БЫЛА ТОКА ДОПУСТИМ НАДПИСЬ В ЛАБЕЛАХ ИЗМЕНЕНЫ БЫЛИ

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 02.03.2005 (Ср) 23:37

Записываешь в определйнный файл, то что ты хочешь увидеть в Label1 и делаешь копию exe

ZipFeR
Обычный пользователь
Обычный пользователь
 
Сообщения: 55
Зарегистрирован: 18.10.2004 (Пн) 23:14

Сообщение ZipFeR » 03.03.2005 (Чт) 1:00

Так че я сюда обратился, ЗА ПРИМЕРОМ :(
Я же пробовал, но нифига, дайте код пожалуйста

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

Сообщение vvs_adm » 03.03.2005 (Чт) 7:18

А тот, кто даст ему код, объясните мне потом, чего он хочет...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.03.2005 (Чт) 9:05

Он хочет сгенерировать машинный код из VB, похоже...

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

Сообщение vvs_adm » 03.03.2005 (Чт) 9:29

Прочитал еще пару разков... Короче он хочет того же, чего хочу и я :lol:

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

Сообщение tyomitch » 03.03.2005 (Чт) 9:32

А траблы-то в чём? Найти в exe-шнике строку, и заменить на другую такой же длины...
Изображение

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

Сообщение vvs_adm » 03.03.2005 (Чт) 9:48

tyomitch писал(а):А траблы-то в чём? Найти в exe-шнике строку, и заменить на другую такой же длины...


Кажись мне пора спать :( Какую именно строку??? :shock:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.03.2005 (Чт) 9:59

Строку, которая в Label1.Caption

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

Сообщение GSerg » 03.03.2005 (Чт) 10:00

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

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.03.2005 (Чт) 10:01

Можно предположить, что она есть, но состоит из пробелов (банально не видна). Тогда не надо извращаться, и замена символов в exeшнике наименее болезненна для клеток мозга ;)

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

Сообщение vvs_adm » 03.03.2005 (Чт) 10:05

То есть вы хотите сказать, что если у меня на форме есть где-то caption="Вася Пупкин", то в экзешнике будет кусок "Вася Пупкин"?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.03.2005 (Чт) 10:06

"В а с я П у п к и н"
(Между каждым байтом с ascii-кодами букв висит нулевой байт)

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

Сообщение tyomitch » 03.03.2005 (Чт) 10:22

Amed писал(а):"В а с я П у п к и н"
(Между каждым байтом с ascii-кодами букв висит нулевой байт)
Не так. "Вася Пупкин" превратится в " ■0AO "
Нулевые байты вставятся только для стандартных ASCII-символов, например цифр и английских букв.
Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.03.2005 (Чт) 10:24

А для остальных просто не вставляются?

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

Сообщение tyomitch » 03.03.2005 (Чт) 10:25

Amed писал(а):А для остальных просто не вставляются?
А остальные, например русские, превращаются в кашу ;-)
Изображение

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

Сообщение GSerg » 03.03.2005 (Чт) 10:26

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

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 03.03.2005 (Чт) 19:54

Вот, попробуй этот код. Мне кажется, это то, что ты просил...
Код: Выделить всё
Private Sub Command1_Click()
    Open App.Path & "\имя_твоего_файла_настроек" For Input As #1
        Print #1, "Твоя строка"
    Close #1
    Shell App.Path & "\" & App.EXEName & ".exe", vbNormalFocus
End Sub

Private Sub Form_Load()
    Dim S As String
    Open App.Path & "\имя_твоего_файла_настроек" For Input As #1
        Line Input #1, S
    Close #1
    Label1.Caption = S
End Sub
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

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

Сообщение vvs_adm » 03.03.2005 (Чт) 21:09

To Cryonyx Это совсем не то, что он просил. Ты меняешь настройки в отдельном файле, а задача - сохранение настроек в самом exe-шнике. Если "разбирать" код экзешника, то в принципе можно, но мне кажется, что вопрос состоял в том, можно ли средствами VB сохранить настройки в коде. Ну неккоректно конечно выразился, но вроде понятно... Для желающих оспорить формулировку поясняю : средствами VB подразумевается абсолютное незнание структуры экзешника... Что-то типа того

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 03.03.2005 (Чт) 23:29

Тут где-то недавно ведь обсуждали что-то связанное с PropertyBag - и насколько я понял тогда из обсуждения, именно с помощью него можно сохранить значения в exe'шник.

С другой стороны. можно пойти по принципу создателей ResHacker - i.e. разложить бинарник по полочкам, разобраться, где у него что; далее, найти раздел ресурсов, и уж там в заранее созданный в Resource Editor раздел запихивать необходимые значения переменных.

Лично я вижу это так. Если у кого есть предложения куда лучше, то с радостью послушаю - у меня самого такой трабл не раз вставал, а времени всё не хватает, чтобы провести доскональный анализ исполняемых файлов.
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 03.03.2005 (Чт) 23:50

А можно к проге снизу дописать :wink:

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

Сообщение tyomitch » 04.03.2005 (Пт) 7:41

Cryonyx писал(а):Тут где-то недавно ведь обсуждали что-то связанное с PropertyBag - и насколько я понял тогда из обсуждения, именно с помощью него можно сохранить значения в exe'шник.

Никакой связи тут нет. Просто удобно класть настройки в PropertyBag, а самого его удобно класть в ехе-шник, и всё: никакой "глубинной" связи между ними нету. С тем же успехом можно сохранять настройки в XML, и потом класть в тот же ехе-шник.
Изображение

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 04.03.2005 (Пт) 15:48

Кста, всё хотел спросить: как можно внутри бинарника быстро найти свои дописанные данные? Предположим, есть некая метка, обозначающая начало считывания данных, скажем, "<<start>>". Просто если стандартным вытаскиванием из бина свего текста, а потом поиску по нему - получается медленновато, так сказать. А если ещё и размер бина превышает допустимый размер даже variant-переменной, то... :roll:
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

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

Сообщение tyomitch » 04.03.2005 (Пт) 18:25

Cryonyx писал(а):А если ещё и размер бина превышает допустимый размер даже variant-переменной, то... :roll:

2Гб-то? Ну-ну ;-)
Изображение

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 04.03.2005 (Пт) 18:42

В начале exeшника есть строка:

This program cannot be run in DOS mode.

на ее место можно дописать что нужно, не превышающее длину этой строки, конечно.

f = FreeFile
Open App.Path & "\" & App.EXEName & ".exe" For Binary As f
MsgBox "Открыл"
Put #f, 78, "Привет"
Close f
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

ZipFeR
Обычный пользователь
Обычный пользователь
 
Сообщения: 55
Зарегистрирован: 18.10.2004 (Пн) 23:14

Сообщение ZipFeR » 05.03.2005 (Сб) 0:02

Ээ...повторяю что мне надо.
Я еще не пробовал то что тут написали, но просто повторю.

Вот у меня есть программа, там есть кнопка, нажимаешь на кнопку и создается такая-же копия программы, но с некоторыми изменениями, допустим надписи другие или кнопки убраны

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 05.03.2005 (Сб) 0:10

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

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 05.03.2005 (Сб) 0:13

tyomitch писал(а):А траблы-то в чём? Найти в exe-шнике строку, и заменить на другую такой же длины...


Вот человек изъявил желание уже и кнопки скрывать. Простым поиском строки тут, я думаю, не отделаться :lol:


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 149

    TopList