Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];

Вниз

Добавить информацию в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.011 c
2-1145395126
77777
2006-04-19 01:18
2006.05.07
Скорость


15-1144918326
_!
2006-04-13 12:52
2006.05.07
Контроль доступа к файлам и папкам


2-1145008141
Anna
2006-04-14 13:49
2006.05.07
Как в Delphi отобразить html файл


8-1134496148
Korvin007
2005-12-13 20:49
2006.05.07
Скринмэйты


15-1144903122
BorisMor
2006-04-13 08:38
2006.05.07
Работа в Новосибирске





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский