TreoNet Ответов: 2

Vb .NET - изменение метки в exe с другого exe-файла


Уважаемый друг,

У меня есть 2 разных проекта, мне нужно обновить 2 метки из одного exe-файла в другой. Я пытаюсь сделать чтение и ввод значений с помощью FilePut и сгенерировать новый exe-файл, но не работает (результат-строка MZ).

С уважением.


-Исполняемые Отправителя-
Public LText1, LText2 В Виде Строки

При Нажатии Кнопки Подменю
Dim s As New SaveFileDialog
s.ShowDialog()
 If s.FileName > "" Then
   LText1 = TextBox1.Text
   LText2 = TextBox2.Text
   FileOpen(1, Application.StartupPath & "\Target.exe", OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
   STarget = Space(LOF(1))
   FileGet(1, STarget)
   FileClose(1)
   FileOpen(1, s.FileName & ".exe", OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
   FilePut(1, STarget & LText1 & LText2)
   FileClose(1)
 End If

----------------------------------------------------


-Целевой EXE-Файл -
Public LText1, LText2 В Виде Строки

Под Нагрузкой
FileOpen(1, Application.ExecutablePath, OpenMode.Binary, OpenAccess.Read, OpenShare.Shared)
LText1 = Space(LOF(1))
LText2 = Space(LOF(1))
FileGet(1, LText1)
FileGet(1, LText2)
FileClose()

Label1.Text = LText1
Label2.Text = LText2

----------------------------------------------------

Что я уже пробовал:

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

Richard MacCutchan

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

TreoNet

Здравствуйте, спасибо за ваш ответ.
Я сделал оба проекта и знаю структуру, просто нужна некоторая помощь для того, как написать exe из другого или как скомпилировать конкретную форму во время выполнения.

2 Ответов

Рейтинг:
2

Patrice T

FilePut(1, STarget & LText1 & LText2)

Насколько я вижу, это никогда не будет делать то, что вы говорите, что хотите, код просто неправильный.
EXE-файл-это не плоский текст, добавление текста в конце никогда не будет принято во внимание. EXE - файл просто не будет знать, что вы добавили какой-то текст в конце, и даже если бы он знал, что магия говорит ему, что делать с этим текстом.
Вам нужно узнать, как все работает, внутренности EXE-файла, профессиональный редактор программиста просто необходим для этого.

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