· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› запись в EXE

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Янв 13, 2003 15:36:17 · Поправил: 640kb

Народ !!!
Как записывать временные данные (например save в игре) сразу в EXE,
без каких либо *.tmp, *.ini и без реестра.


Дата: Янв 13, 2003 15:59:53

А в этом .EXE есть место для таких данных ?


Дата: Янв 13, 2003 16:32:42

А если специально не выделять место, то никак нельзя ?


Дата: Янв 13, 2003 16:55:36

Многое можно, если знать к чему стремишся или хотя бы :
- это твой .EXE ?
- чем тебя не устраивают другие методы ?


Дата: Янв 13, 2003 17:05:37

.exe мой.
Просто хочу узнать ещё один метод.


Дата: Янв 13, 2003 17:42:43

Ну если это твой .EXE, тогда я ничем помоч не могу.


Дата: Янв 13, 2003 20:13:14

В чём прикол?
Ну а если .exe не мой, что тогда?


Дата: Янв 14, 2003 05:27:49

Если только он сам в себя не пишит.


Дата: Янв 14, 2003 10:57:30

Это мне и нужно. Нужно чтобы прога сохраняла свои настройки в своём ехешнике.


Дата: Янв 15, 2003 02:48:11

Это дело трудное...


Дата: Янв 15, 2003 03:00:59

Возможно так:
- сделайте мини-программу которая через command-line параметры берет данные и пишит их в ваш exe. Программа должна ждать пока её вклучатель вырубится перед писанием в exe.
- cохраните программу в ваш exe (через bin2inc, и т.д.).
- в нутри exe, скидывайте эту мини-программу в TEMP или куда надо, врубаете её через ShellExecute или CreateProcess с нужными command-line параметрами.
Правда проблема что эта программа потом себя не сотрёть, но это-же опять поправимо - создаёте command-line /switch (типа /deltemp) у главной программы которая стирает мини-программу.

Или так:
- создаём remote thread (через CreateRemoteThread) где-то в чужом процессе (типа explorer.exe) и пишим туда нужный код через WriteProcessMemoryOpenProcess). Этот код ждёт пока ваша программа вырубится, и потом пишит нужние данные в ваш exe.


Дата: Янв 15, 2003 04:25:09

Последний метод сделан:
http://comrade.win32asm.com/work/selfsave.zip


Дата: Янв 15, 2003 09:59:58

Спасибо за метод и за ссылку, но мне бы это сделать под DOS.


Дата: Янв 16, 2003 02:45:19

Ну блин.


Дата: Фев 15, 2003 18:08:01

Под Дос вааще без всяких проблемз:
на С

#include <stdio.h>
#include <dos.h>
void main(int, char argv[])
{
FILE* f = fopen(*argv, "wt");
fprintf(f, "Hello World!");
fclose(f);
}

// Запусти а потом посмотри содержимое exe

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.052