Уже весь инет блин облазил немогу найти. нужно сделать конфигуратор программы. тоесть программа 1 создает программу 2 (с указанными параметрами в проге 1)
Подобно к билдерам троянов.
я делал двумя способами но оба неудачны :
1). создавал прогу 2 потом прогой 1 открывал ее в Binary искал значение и изменял
- Код: Выделить всё
Dim s$
Open App.Path & "\" & "1.exe" For Binary As 1
s = Space(LOF(1))
Get 1, , s
txt1 = Text1
s = Replace(s, StrConv("xxxxxxxxx", vbUnicode), _
StrConv(txt1, vbUnicode))
Put 1, 1, s
Close 1
тоесть ищет xxxxxxxxx и изменяет. но проблема в том что есле длинна не совпадает то уже программа не запуститься.
и второй способ
2). делал также компилил погу 2 редактором ресурсов вшивал ее в прогу 1. добавлял в обе проги ResString с одинаковым значением.
в проге 1 по нажатию на command1:
- Код: Выделить всё
Dim arrData() As Byte
arrData = LoadResData(101, "CUSTOM")
Open "c:\1.exe" For Binary Access Write As #1
Put #1, , arrData
Close
Dim s$
Open App.Path & "\" & "1.exe" For Binary As 1
s = Space(LOF(1))
Get 1, , s
txt1 = Text1
s = Replace(s, StrConv(LoadResString(101), vbUnicode), _
StrConv(txt1, vbUnicode))
Put 1, 1, s
Close 1
т.к. значение LoadResString(101) у обоих exe одинаково то первая прога заменяет его во второй (заменяет тем текстом что в Text1.Text) и все ок.. есле текст(в Text1.Text) меньше чем тот что в ResString(101) то прога работает а есле больше то тоже пашет только укорачиваеться до длинны ResString(101).. (блин ну я и обясняю аж сам запутался )
ну короче во втором способе все пашет на ура только одно НО! мне нужно изменить не один параметр а 4. а оно нормально работает только с одним
Например так как показано в примере 2 работает а есле я делаю так то уже нет :
- Код: Выделить всё
Dim s$
Open App.Path & "\" & "1.exe" For Binary As 1
s = Space(LOF(1))
Get 1, , s
txt1 = Text1
txt1 = Text2
txt1 = Text3
txt1 = Text4
s = Replace(s, StrConv(LoadResString(101), vbUnicode), _
StrConv(txt1, vbUnicode))
s = Replace(s, StrConv(LoadResString(102), vbUnicode), _
StrConv(txt2, vbUnicode))
s = Replace(s, StrConv(LoadResString(103), vbUnicode), _
StrConv(txt3, vbUnicode))
s = Replace(s, StrConv(LoadResString(104), vbUnicode), _
StrConv(txt4, vbUnicode))
Put 1, 1, s
Close 1
тоже трабла с длинной получаеться. а именно : когда текст в Text1.Text меньше чем в ResString то в LoadResString(101) смещаеться значения с LoadResString(102) а в LoadResString(102) значения с LoadResString(103) и LoadResString(104) Not Found.. короче муть какаято =)
Подскажите как сделать конфигуратор ))