|
Вопрос # 5 508/ вопрос закрыт / |
|
Доброго времени суток, уважаемые эксперты!
Не судите строго за вопрос, но возникли сложность с обновлением строкового ресурса в программе.
1 проблема видимо в том, что программа пытается обновить ресурс в самой себе, а следовательно натыкается на файл который исполняется и не может его обновить. На сколько я помню - можно при запуске загружать программу в оперативную память и дальше работать с копией из памяти, следовательно можно будет спокойно работать с ресурсами из ехе. Но это не самое важное, основная проблема в другом.
2 проблема - так как я не могу получить доступ к файлу, попытался обновить информацию у этой же программы но положеной в другую директорию, а следовательно не выполняемую. НО после выполнения кода, который ни на что не ругается (проверял GetLastError после каждой команды и ругнулось только на s:=StrToInt(year_on) и выдало 8, хотя год и присваивается какой нужно), и проверке ресурсов программы через restorator - данные те же, что и были ранее.
Надеюсь на вашу помощь.
Прилагаю листинг процедуры в которой и возникает проблема.
Код показывает что я пытаюсь обновить ресурс как исполняемого файла, так и не исполняемого, но информация не обновляется нигде.
Исполняемый файл находится в D:\DirPath\ProgramDirPath\poschitalka.exe
Приложение: Переключить в обычный режим- procedure TDate_change.Ok_buttonClick(Sender: TObject);
- var
- day_on,month_on,year_on:word;
- date_on:tdatetime;
- res:THandle;
- s:string;
- qwerty:integer;
- nam:string;
- error_code:integer;
- Ptr : Pointer;
- begin
- nam:=Application.ExeName;
-
- date_on:=monthCalendar1.date;
- decodedate(int(date_on),year_on,month_on,day_on);
-
- s:=FloatToStr(year_on);
-
- res:=BeginUpdateResource(PChar(nam),false);
- Ptr:=Addr(s);
- UpdateResource(res,RT_STRING,'65261',LANG_NEUTRAL,ptr,sizeof(s));
- EndUpdateResource(res,false);
- error_code:=getlasterror();
- ShowMessage(IntToStr(error_code));
- s:=FloatToStr(month_on);
- res:=BeginUpdateResource('D:\DirPath\poschitalka.exe',false);
- Ptr:=Addr(s);
- UpdateResource(res,RT_STRING,'65262',LANG_NEUTRAL,ptr,sizeof(s));
- EndUpdateResource(res,false);
- s:=FloatToStr(day_on);
- res:=BeginUpdateResource(PChar(nam),false);
- Ptr:=Addr(s);
- UpdateResource(res,RT_STRING,'65263',LANG_NEUTRAL,ptr,sizeof(s));
- EndUpdateResource(res,false);
- Close;
- end;
 |
Вопрос задал: Pessimist (статус: Посетитель)
Вопрос отправлен: 16 июля 2011, 21:38
Состояние вопроса: закрыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 23; последнее сообщение — 18 июля 2011, 19:47; участников в обсуждении: 4.
Страницы: [« Предыдущая] [1] [2]
|
Pessimist (статус: Посетитель), 18 июля 2011, 14:22 [#21]:
Дааа...
Вопрос закрыт, за не имением экспертов на сайте экспертов.
50% хоть что-то путное сказали, 50% троль..
|
18 июля 2011, 14:23: Вопрос закрыт (решение принял автор вопроса — Pessimist): Отсутствие экспертов, присутствие эксперто-тролей
18 июля 2011, 14:29: Вопрос вновь открыт (изменение состояния произвёл min@y™)
|
min@y™ (статус: Доктор наук), 18 июля 2011, 14:29 [#22]:
Цитата (Pessimist):
Вопрос закрыт, за не имением экспертов на сайте экспертов.
Ну, дык, записывайся в эксперты, первым будешь.
Цитата (Gooddy):
Почему зря то? Отдохнёшь.
Работы полно. Но придёццо отдохнуть. Я вообще коньяк не люблю, от него башка с утра болит. Пиво - это ВЕЩ!
Цитата (Pessimist):
50% хоть что-то путное сказали, 50% троль..
Не пытайся менять инфу в ехе-шнике. Это дикий геморрой. И, кстати, такую хрень очень не любят антивирусы и файрволлы. Тебе оно надо?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
18 июля 2011, 14:31: Вопрос закрыт (решение принял min@y™): Записывайся к нам, экспертом будешь!
18 июля 2011, 19:46: Вопрос вновь открыт (изменение состояния произвёл автор вопроса — Pessimist)
|
Pessimist (статус: Посетитель), 18 июля 2011, 19:47 [#23]:
Антивирус стоит, изменения вносятся, антивирус не ругается. Единственное, что изменения вносятся неправильно.
ПыСы: На Restorator не видел еще антивируса, который ругается на его действия.
|
18 июля 2011, 19:49: Вопрос закрыт (решение принял автор вопроса — Pessimist): Эксперт из меня никудышный - времени нет.
Страницы: [« Предыдущая] [1] [2]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|