Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
1-1364
SIW
2003-08-17 19:37
2003.09.01
Работа с TStringList


1-1377
Sliski Slimak
2003-08-16 20:48
2003.09.01
Господа,как создать ресурс с 24-bitным битмапом?


1-1432
opoloXAI
2003-08-18 10:10
2003.09.01
RichEdit.Lines.Count > 460


14-1564
McSimm
2003-08-10 16:03
2003.09.01
Об изменениях в форумах


6-1534
vlad40
2003-06-24 12:23
2003.09.01
Проблема с FTP и Internet Connection Sharing




   Наверх