Главная страница
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.027 c
9-1270
BBear
2003-03-01 20:49
2003.09.01
procedure TForum.Destoy;


1-1492
Nestor
2003-08-15 07:58
2003.09.01
Подскажите пожайлуста, как при написании help a избавиться от


3-1323
AndrewVolkov
2003-08-07 20:00
2003.09.01
Blob поле - непонятки с запросом...


14-1658
Ketmar
2003-08-12 11:53
2003.09.01
едё телевизор:


6-1533
nester
2003-06-25 18:16
2003.09.01
как перехватить в IE 404 not found и подсунуть вместо этого свое