Главная страница
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.026 c
15-1144769258
chizra
2006-04-11 19:27
2006.05.07
Как пользоваться программой tar.exe для распаковки...


15-1144825283
tsa
2006-04-12 11:01
2006.05.07
12 апреля День Космонавтики! Ура!


2-1145209717
так себе
2006-04-16 21:48
2006.05.07
Помогите разобраться с Format ами


4-1140074783
ExE
2006-02-16 10:26
2006.05.07
запуск приложений и получение результатов


3-1142008529
Kerk
2006-03-10 19:35
2006.05.07
Динамическое создание колонок в TdxDBGrid