Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.07;
Скачать: CL | DM;

Вниз

Добавить информацию в EXE-шник   Найти похожие ветки 

 
kyn66 ©   (2006-03-30 18:25) [0]

Скажите, возможно-ли во время работы программы добавлять в саму себя некие данные, ну типа счетчик запусков и т.д.?


 
Rial ©   (2006-03-30 21:18) [1]

В сам запущенный EXE-шник -нет.
Пиши в INI файл или т.п.
Либо открывай другой EXE-шник, закрывай этот, новым добавляй в старый что-то, опять запускай старый, закрывай новый.
Вот только что ты такое хочешь добавить в EXE-шник, не понимаю. Вряд ли ты сможешь осуществить то что тебе надо твоим способом, если задал такой вопрос ...


 
kutuzov47 ©   (2006-03-30 23:06) [2]

Почему бы тебе не пользоваться реестром?
А вообще, в программу можно добавить все чо угодно, но, как было сказано, программа не может это записать сама в себя. Есть огромное кол-во примеров по добавлению в exe музыки, картинок и т.д.


 
kyn66 ©   (2006-03-31 11:16) [3]

Изменения в реестре всегда можно вычислить. А мне нужно сделать скрытый счетчик запусков программы.


 
Сергей М. ©   (2006-03-31 11:24) [4]


> мне нужно сделать скрытый счетчик запусков программы


А если твоя программа будет запущена с read-only носителя ?


 
kyn66 ©   (2006-03-31 11:45) [5]

Согласен, и такое могет быть. Вот я ищу подходящий способ


 
Сергей М. ©   (2006-03-31 12:35) [6]


> kyn66 ©   (31.03.06 11:45) [5]


Используешь, например, алладинов LPT-ключ и хранишь на его борту все что тебе заблагорассудится, в т.ч. и сч-к запусков.

Ну или USB-ключ ..


 
kyn66 ©   (2006-03-31 13:07) [7]

Я когда-то скачивал, но где и когда не помню некий модуль, позволяющий выполнять подобные операции. Он записывает любую инфу в конец файла.


 
Сергей М. ©   (2006-03-31 13:11) [8]


> записывает любую инфу в конец файла


Угу.. особенно - в конец файла на read-only носителе ?


 
kyn66 ©   (2006-03-31 13:15) [9]

> Сергей М
Ну чегость ты к этому ReadOnly привязался ??? У старфорса знаш скока проверок перед запуском? Вот и тут мона проверить... если ридонли - обругать и не запускаться вааще ;-)


 
Сергей М. ©   (2006-03-31 13:22) [10]


> обругать и не запускаться вааще


Тебе же именно сч-к запусков нужно вести, правильно ?

Раз ты обругал юзера, значит юзер тебя таки запустил) .. Спрашивается, почему этот факт нельзя расценивать как очередной запуск, подлежащий учету в счетчике ?


 
kyn66 ©   (2006-03-31 13:44) [11]

> Раз ты обругал юзера, значит юзер тебя таки запустил) ..
Это обругание проверяется в самом начале, призагрузке главнойформы, а сч-к уж потом срабатывает.


 
Сергей М. ©   (2006-03-31 13:50) [12]


> обругание проверяется в самом начале


Ну вот так и говори, мол, меня интересует возможность хранения сч-ка фактов исполнения главной ветки алгоритма моего приложения, а не сч-ка фактов запуска моего приложения как такового.

Если аппаратные ключи не нравятся, можно хранить свой сч-к в том же реестре, но в хитрозадо закодированном виде. Многие производители ПО именно так и поступают.


 
kyn66 ©   (2006-03-31 14:27) [13]

Хитрозадо можно, но в данном случае будет происходить проверка на наличия значения ключа, а не как такового. Отслеживается запись и просто тупо удаляется. Счетчик пошел считать с нуля 8-(. Конечно, если предположить, что юзер изначально не начнет проверять изменения в реестре при первом запуске, то да....


 
Сергей М. ©   (2006-03-31 14:42) [14]

Спорить насчет "продвинутости" самого обыкновенного юзера, способного и желающего контролировать логику программера, я не буду.

Если же ты таки проникся идеей-фикс записи в pe-модуль и если read-only тебя не пугает, то схема м.б. примерно такова:

- перед завершением приложение инкрементирует сч-к и передает его значение в одну из ф-ций в составе "своей" DLL, ф-ция вызывается средствами rundll32(), кроме значения сч-ка в ф-цию параметром передается Id процесса приложения:

- вызванная в приложении "своя" DLL-ф-ция ждет завершения процесса, пишет в его EXE-файл обновленное значение сч-ка и завершает свое выполнение;

- при старте приложение проверяет наличие файла "своей" DLL и грузит ее в свое АП во избежание попытки удаления этого файла; если DLL не обнаружена (или считанное из своего файла значение сч-ка недопустимо), приложение "ругается" и немедленно завершается.


 
kyn66 ©   (2006-03-31 15:17) [15]

> Сергей М.
Вот это уже деловое предложение, дафай-ка поглубже разовьем твою мысль, более детально...


 
Сергей М. ©   (2006-03-31 15:21) [16]


> kyn66 ©   (31.03.06 15:17) [15]


> дафай-ка


Дафай-дафай ..

Что конкретно не понятно ?


 
kyn66 ©   (2006-03-31 15:26) [17]

Если пока оставить в покое механизм обработки, изначально решить, как и где хранить DLL-ку. Т.е. ее можно вместе с прогой таскать, а можно в ресурс запихнуть, да?


 
Сергей М. ©   (2006-03-31 15:57) [18]


> Т.е. ее можно вместе с прогой таскать, а можно в ресурс
> запихнуть, да?


Тебе и только тебе решать, где и как ее "таскать" и "хранить"..

Что же до меня, то я категорически против "таскания" и "хранения" файлового образа одного РЕ-модуля в файловом образе другого.



Страницы: 1 вся ветка

Текущий архив: 2006.05.07;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.027 c
15-1145048960
Asics777
2006-04-15 01:09
2006.05.07
AV v.1.5 - Видео проигрыватель вскоре будет как Light Alloy !


2-1145034918
Volodya_
2006-04-14 21:15
2006.05.07
TMediaPlayer


1-1143366898
Kolan
2006-03-26 13:54
2006.05.07
Как поместить класс в Dll или пакет?


9-1128282128
3d[Power]__
2005-10-02 23:42
2006.05.07
OGG via directsound


1-1143486404
Shnaider
2006-03-27 23:06
2006.05.07
Загрузка dll вместе с windows