Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.01;
Скачать: CL | DM;

Вниз

Текст в exe-шнике..   Найти похожие ветки 

 
AntE   (2003-07-01 01:31) [0]

Помогите, плз. В одном exe-файле есть три строковых "константы" (я их сделал как resourcestring), запускаем другой exe-шник и он должен заменить все три строки на новые (размер строк может меняться), при этом первый файл не должен "испортиться", что я пытался сделать через Windows API (beginupdateresource, updateresource и endupdateresource) - не вышло! :( Подскажите, как это сделать, можно через выше описанные функции...


 
Digitman ©   (2003-07-01 08:23) [1]


> не вышло!


а входило ли ?)

где код твой ?


 
AntE   (2003-07-01 14:58) [2]

вот что было в фале ИЗМЕНЯЮЩЕМ текст..
...
var hUpd: THandle;
( PChar("myexe.exe") вот что было в фале ИЗМЕНЯЮЩЕМ текст..
...
var hUpd: THandle;
DataE: ^String;
...
hUpd:=BeginUpdateResource(PChar("myexe.exe"), False);
try
GetMem(DataE, Length(Edit1.Text)); DataE^:=Edit1.Text; UpdateResource
(hUpd, RT_STRING, PChar("FileC"), LANG_SYSTEM_DEFAULT, PChar(DataE^), Length(DataE^));
... (такой update ещё 2 раза (см. ниже))
finally EndUpdateResource(hUpd, False) end;

в exe"шнике с текстом, который НАДО ИЗМЕНИТЬ:
...
resourcestring FileC = "C:\AUTOEXEC.BAT";
TimeC = "12:00";
DateC = "01.01.2003";
...
Что я делаю не так???


 
Игорь Шевченко ©   (2003-07-01 15:01) [3]

Чем-то нехорошим от этого текста несет...


 
Digitman ©   (2003-07-01 16:20) [4]

1. ты не анализируешь результаты вызовов API-ф-ций
2. непонятно, какие исключения в блоке try ты надеешься перехватывать, кроме исключений менеджера памяти


 
Morfein ©   (2003-07-01 16:31) [5]

какой-то странный стиль програмирования... что такое ^string?

...
var
hUpd: THandle;
DataE: pchar;
dwLength : dword;

begin
...
dwLength:=Length(Edit1.Text) + 1;
hUpd:=BeginUpdateResource("myexe.exe", false);
if hUpd > 0 then
begin
DataE:=VirtualAlloc(nil, dwLength, MEM_COMMIT, PAGE_READWRITE);
StrPCopy(DataE, Edit1.Text);
UpdateResource(hUpd, RT_STRING, "FileC", LANG_SYSTEM_DEFAULT, DataE, dwLength);
EndUpdateResource(hUpd, false);
( DataE, 0, MEM_RELEASE)
какой-то странный стиль програмирования... что такое ^string?

...
var
hUpd: THandle;
DataE: pchar;
dwLength : dword;

begin
...
dwLength:=Length(Edit1.Text) + 1;
hUpd:=BeginUpdateResource("myexe.exe", false);
if hUpd > 0 then
begin
DataE:=VirtualAlloc(nil, dwLength, MEM_COMMIT, PAGE_READWRITE);
StrPCopy(DataE, Edit1.Text);
UpdateResource(hUpd, RT_STRING, "FileC", LANG_SYSTEM_DEFAULT, DataE, dwLength);
EndUpdateResource(hUpd, false);
VirtualFree(DataE, 0, MEM_RELEASE);
end;
...
end;


 
Digitman ©   (2003-07-01 17:03) [6]

что есть "FileC" ? Имя строкового ресурса ?
как это связано с resourcestring ?



 
Morfein ©   (2003-07-01 17:48) [7]

Хм... и точно ведь... resourcestring



Страницы: 1 вся ветка

Текущий архив: 2003.09.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
4-1735
sserge
2003-06-30 02:43
2003.09.01
Как изменить дату создания директории


6-1529
Benedict
2003-06-22 17:56
2003.09.01
Перехват клика по ссылке в браузере?


14-1566
Pavel
2003-08-11 18:10
2003.09.01
может кто знает?


14-1630
Е-Моё имя
2003-08-13 09:52
2003.09.01
маразм крепчал


1-1426
Terrible
2003-08-18 14:08
2003.09.01
Теряются тесктовые ресурсы в проге на Delphi7