|
gegh
|
|
Контроль числа запусков программы30.06.2011, 11:05. Показов 4426. Ответов 10
Метки нет (Все метки)
Друзья, как в exe файле записать возможное кол-во числа запусков программы. Может кто-нибудь сталкивался с такой задачей. или владеет информацией. буду очень признателен. суть состоит в том, что нельзя создавать никаких др файлов, в котором можно это прописать. и допустим, если мы задаем 10 запусков, то на 1 компе мы запустили 5 раз, при запуске на 2 компе у нас должно оставаться 5 запусков.
Спасибо большое! |
|
| 30.06.2011, 11:05 | |
|
Ответы с готовыми решениями:
10
Контроль количества запусков С++ Узнать количество запусков программы Запись и извлечение данных в несколько запусков программы |
|
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
|
|
| 30.06.2011, 11:40 | |
|
Я бы сделал так. Создал бы глобальную строковую переменную со значением "0123456789". Потом в начале программы читал бы из exe-файла кусочек по пока неизвестному адресу и записывал туда же то, что нужно. После трансляции нашел бы в экзешнике эту "0123456789" и определил ее адрес. Теперь адрес известен. Транслируем еще разок. Все.
Если эта абракадабра встретится более раза, используем другую. Правда, неизвестно, позволит ли операционка писать в исполняемую в данный момент программу
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 30.06.2011, 11:51 | |
Сообщение было отмечено как решение
Решение
Гм. Предложенная метода представляется неудачной (имхо). Причины:
1. "Создал бы глобальную строковую переменную со значением "0123456789". - это будет строковый литерал, который вменяемый компилятор расположит в RO-секции. Попытка записи туда завершится с AV со всеми вытекающими.... 2. "Теперь адрес известен. Транслируем еще разок. Все." - ага, а адрес после повторной трансляции лехко может стать уже совершенно другим. Компилятор чего-нибудь соптимизирует и все, - приплыли! :-) 3. "Правда, неизвестно, позволит ли операционка писать в исполняемую в данный момент программу" - не позволит. Вылетит AV со всеми вытекающими....
3
|
|
|
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
|
|
| 01.07.2011, 10:11 | |
|
CheshireCat, С критикой согласен. Но попробовать можно. Я не пробовал. Будет свободное время - попытаюсь.
Кстати, оптимизацию можно и отключить.
0
|
|
|
return (true);
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
|
|
| 01.07.2011, 10:19 | |
|
Вам обязательно самому выдумывать велосипед?
Просто существует куча протекторов, которые успешно выполняют эту и многие другие функции.
0
|
|
|
65 / 71 / 9
Регистрация: 25.06.2009
Сообщений: 244
|
|
| 01.07.2011, 12:49 | |
|
что то мне кажется что без записи в реестр или в файлы не получится, так как экзешник не даст в себя записать пока он запущен
0
|
|
|
|
|||||||||||
| 01.07.2011, 13:11 | |||||||||||
|
Вобщем я пошёл по пути ввода глобальной строковой переменной. Одно но если испольщовать как было сказано выше строковую переменную, которая как я понял увеличивает свою длину от запуска к запуску, мы будем получать неработающий экзешник, потому что будет нарушаться контрольная сумма байт в заголовке экзе и его реальном размере. Введенная мной переменная позволяет найти её в бинарном коде программы PRGSTART
скриншот привожу), а после символа : вписать кол-во оставшихся запусков т.е 15, 14, ещё для удобства позиционирования в бинарном коде ввел символ завершения строковой переменной '!'
Ниже проект с кодом который модифицирует самого себя, создаёт новый экзе во временном каталоге и копирует модифицированную прогу взамен оригинала. Кто хочет доработайте затирку, или же подождите вечера, я на работе и уже нет времени закончить...
1
|
|||||||||||
|
|
||||||
| 01.07.2011, 14:48 | ||||||
|
Начал переделывать и понял что ошибка запуска замененного оригинала получается в результате того что пітаюс в качестве параметра командной строки передать Путь к файлу, віходит что на каждом каталоге встречая '\\' путь разрывается на ряд подпараметров командной строки, которые нужно потом склеить, вобщем это единственный огрех который нужно подправить вот функция
0
|
||||||
|
gegh
|
|
| 01.07.2011, 19:19 | |
|
Спасибо Юра большое!
Велосипед совсем не нужен, одна из частей курсового задания, которую никак не мог выполнить. А преподу надо, чтобы так и было написано ручками. |
|
|
|
|
| 02.07.2011, 03:21 | |
|
Вот выложил исходник, написал на чистом WinAPI, пока время было, постарался сделать чтобы прога не засоряла папку C:\\Windows\Temp при каждом запуске exe, при выходе удаляет временный файл.
2
|
|
| 02.07.2011, 03:21 | |
|
Помогаю со студенческими работами здесь
11
Сохранение массива для последующих запусков программы Контроль времени выполнения программы Контроль ввода числа Контроль корректности ввода числа Контроль запусков приложения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|