Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];

Вниз

Текст в 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
1-1498
Opera
2003-08-19 15:44
2003.09.01
GameExplorer


3-1336
ZyXEL
2003-08-07 15:17
2003.09.01
ADO (*.xls) -> DBF ?


4-1732
DelphiN!
2003-06-30 07:58
2003.09.01
Как сохранить позицию Scrollbar-а?


1-1441
ArtAlex
2003-08-18 20:56
2003.09.01
Как можно отследить процесс?


1-1362
Borealis
2003-08-19 00:23
2003.09.01
Сколько детей у корня TTreeView?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский