Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Настройки, Помогите сделать настройки для проги 
:(
    Опции темы
Clicker
Дата 29.8.2005, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 16.8.2005

Репутация: нет
Всего: нет



У меня прога -для нее настройки, которые не надо прописывать в реестре и в файле txt т.е. чтобы настройка записывалась в саму прогу. Что можно сделать?
PM MAIL   Вверх
_hunter
Дата 29.8.2005, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



ищи тему по самоудалению ( так и называется ) только вместо удаления файла редактируй его...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Snowy
Дата 29.8.2005, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Это довольно проблемно, и далеко не всем антивирусам это понравится.
PM MAIL   Вверх
Clicker
Дата 29.8.2005, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 16.8.2005

Репутация: нет
Всего: нет



_hunter а прокоментируй поподробнее... в смысле уделение заменой
PM MAIL   Вверх
Snowy
Дата 29.8.2005, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Общий смысл в том, что, чтобы отредактировать файл, тебе нужно сделать сначала так, чтобы он не был запущен в данный момент.
Тогда другой программой ты сможешь внести в него изменения.
То есть общий принцип:
1. Из программы запускаем другую - которая будет делать изменения, и передаем ей необходимые данные.
2. Выходим из программы.
3. Программа, которую мы запустили, ждет, когда exeшник станет доступным для редактирования. Вносит изменения.
4. Снова запускает (при необходимости) главную программу и выходит.
Чтобы не держать 2 программы, можно сделать так:
1. Создаем копию нашей программы.
2. Вносим в копию изменения.
3. Создаем bat файл по образу и подобию примера о самоудалении (или лучше примера о самообновлении).
4. Запускаем bat файл. Выходим.
5. bat производит замену. Запускает снова основную программу (при необходимости). Самоуничтожается.
PM MAIL   Вверх
_hunter
Дата 29.8.2005, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



какое еще удаление заменой?
перед человеком, желающим писать в свой же ехе-шник ( запущенный ) стоит такая же проблема что и перед человеком, желающим свой ехе-шник удалить ( по закрытию ) -- во время работы доступа на запись к файлу нет. поэтому приходиться исхитряться -- пример -- самоудаление:
http://forum.vingrad.ru/index.php?showtopic=11951
делаеш все так же, но вместо куска, удаляющего файл пишеш свой кусок по записи настроек.

или тебя реализация записи интересует?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Snowy
Дата 29.8.2005, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Вот пример кода, который заменяет текущий файл измененным:
Код

var    
  sl: TStringList;    
begin    
  sl:=TStringList.Create;    
  sl.Add(':start');    
  sl.Add('del "'+ParamStr(0)+'" >nul');    
  sl.Add('if Exist "'+ParamStr(0)+'" goto start');    
  sl.Add('copy Новый_файл.exe "'+ParamStr(0)+'"');    
  sl.Add('"'+ParamStr(0)+'"');    
  sl.Add('del %0 >nul');    
  sl.SaveToFile('$$tmp$$.bat');    
  WinExec('$$tmp$$.bat',SW_HIDE);    
  Application.Terminate;    
end;

PM MAIL   Вверх
EDuard
Дата 29.8.2005, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



А как внести измененния в ехе'шник если допустим он не запущен?


--------------------

PM MAIL WWW ICQ   Вверх
EDuard
Дата 29.8.2005, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



НАшел вот такой модуль правда для паскаля.

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  exewrite.zip 1,32 Kb


--------------------

PM MAIL WWW ICQ   Вверх
_hunter
Дата 29.8.2005, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



проще всего писать _за файлом_ т.е. открыл на запись, сместился в конец и записал.
а как настройки хранить -- сам решай. можеш просто в по 4-ре байтп писать ( это если инты ) можеш а виде имя_параметра=значение_параметра и потом разбирать...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Snowy
Дата 29.8.2005, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Код

var
  fs: TFileStream;
begin
  try
    fs:=TFileStream.Create('Новый_файл.exe',fmOpenReadWrite); // открываем файл
    fs.Seek(fs.Size-$BF0,soFromBeginning); // Переходим к незадействованной области
    fs.Write(...,...); // записываем все, что нам нужно
  finally
    fs.Free; // закрываем файл
  end;

А уж чего и как ты будешь писать, это уж зависит только от тебя.
Читать аналогично, только не Write, а Read.
Естественно данный exe нельзя будет жать никаким упаковщиком.
PM MAIL   Вверх
Clicker
Дата 1.9.2005, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 16.8.2005

Репутация: нет
Всего: нет



Snowy
Большое спасибо тебе!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0738 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.