Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pigah
12 / 12 / 2
Регистрация: 05.07.2009
Сообщений: 147
Записей в блоге: 1
#1

Количество запусков в программе - C++

09.10.2009, 15:04. Просмотров 982. Ответов 6
Метки нет (Все метки)

Подскажите пожалуйста код для подсчитывания количества запусков *.ехе файла допустим что бы в окне появлялось "Программа на может быть запущенна больше 10 раз"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2009, 15:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Количество запусков в программе (C++):

Узнать количество запусков программы - C++
Возможно ли посчитать сколько ли раз запущена программа. Сразу скажу вариант: запуск программы, добавляем 1-ку в файл мне не подойдет. ...

Контроль количества запусков С++ - C++
Друзья, подскажите пожалуйста как в exe файле прописать количество возможных запусков программы?

Контроль числа запусков программы - C++
Друзья, как в exe файле записать возможное кол-во числа запусков программы. Может кто-нибудь сталкивался с такой задачей. или владеет...

Запись и извлечение данных в несколько запусков программы - C++
Всем добрый вечер! Предоставляю исходник программы EMPL_IO стр.574 с книги Лаффорте ООП в С++. Пытаясь улучшить программу наткнулся на...

Сохранение массива для последующих запусков программы - C++
Сделал программу, которая строит расписания обработки деталей на станках: считываются исходные данные, которые по нажатию кнопки на форме...

Посчитать количество чисел в программе - C++
Что написать в тело цикла, для того чтобы программа считала количество цифр в числе, которое заранее введено пользователем?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
АНК
124 / 115 / 2
Регистрация: 27.02.2007
Сообщений: 291
09.10.2009, 15:17 #2
Цитата Сообщение от pigah Посмотреть сообщение
Подскажите пожалуйста код для подсчитывания количества запусков *.ехе файла допустим что бы в окне появлялось "Программа на может быть запущенна больше 10 раз"
Специального кода на этот случай нет
Вам на выбор:
  • ключ в реестре
  • ключ в INI-файле
  • поле в собственном exe-шнике
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
09.10.2009, 15:51 #3
Цитата Сообщение от АНК Посмотреть сообщение
Специального кода на этот случай нет
Вам на выбор:
  • ключ в реестре
  • ключ в INI-файле
  • поле в собственном exe-шнике
можно по подробнее последний вариант, и остальные тоже очень интерсны, но последний особенно
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
09.10.2009, 16:04 #4
Я тоже хочу такую штуку себе написать.
То есть надо так писать. Установить счётчик в исходнике.
Допустим, так:

C++
1
2
[FONT=monospace]int chotchik= 10;
 chotchik--;[/FONT]
То есть при каждом запуске программы счётчик пусть уменьшается на 1.
Вот тут заморочки начинаются.
Потому, что при повторном запуске он опять станет равным 10.
Что делать?

Ну, наверное, если файл имеет имя fail_1.exe, то нужно
1) его открыть
2) деинкреминировать счётчик
3) по окончании работы программы (!Но пока файл fail_1.exe ещё открыт!) создать копию программы fail_2.exe (В этой копии в ячейке адреса, которая отведена под переменную chotchik будет уже значение 9) Тупо побайтно копирнуть, что ли ОТКРЫТЫЙ файл
4) Закрыть файл fail_1.exe
5) Удалить файл fail_1.exe, сохранив где-нибудь его имя
6) Переименовать файл fail_2.exe в fail_1.exe

Всё, теперь по запуску программы переменная chotchik будет равна 9.
На всём выше написанном я не настаиваю, это только один из спорных методов.
А нам надо изменять данные на жёстком диске.
Если кто-то знает, как изменить данные на жёстком диске, не копируя открытый файл, с удовольствием выслушаю.

Ну, вот. Теперь, когда мы умеем уменьшать счётчик, можно при его равенстве нулю выполнять какие-нибудь деструктиивные действия.
То есть пишем

C++
1
2
[FONT=monospace]if (chotchik== 0) 
 {  //Деструктивные действие }[/FONT]
Какие действия? Да просто похерить весь код к матери или часть кода или файловый заголовок.
Если код потрёшь, он уже невыполнится, если файловый заголовок потрёшь - при следующем запуске не выполнится.

Если потёр код, то когда этот файл сохраняется под именем fail_1.exe, а там не код а не поймёшь чё. И он не выполнится/ не загрузится/или надпись какую выведет

Будет зависеть от того, как ты код изменять будешь по условию (chotchik== 0)
АНК
124 / 115 / 2
Регистрация: 27.02.2007
Сообщений: 291
09.10.2009, 17:13 #5
Цитата Сообщение от TanT Посмотреть сообщение
можно по подробнее последний вариант, и остальные тоже очень интерсны, но последний особенно
Естественно, речь не идет о коррекции открытого exe-шника. Я имел ввиду динамиченски подключаемую DLL, в которой, перед вызовом ее LoadLibrary, изменяется поле счетчика.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
09.10.2009, 17:21 #6
как раз собирался поработать с DLL. но всё руки как-то не доходили. надо будет попробовать.
примеры есть подобных решений в коде? глянуть одним глазком
АНК
124 / 115 / 2
Регистрация: 27.02.2007
Сообщений: 291
09.10.2009, 17:25 #7
Я делал так:
  • заводил в DLL extern переменную, значение 0, собирал DLL
  • изменял значение переменной в исходном коде, и собирал под другим именем.
  • путем сравнения двух файлов определял адрес переменной.
Вариант, конечно, давольно ублюдочный. Поэтому рекомендую работать через реестр.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2009, 17:25
Привет! Вот еще темы с ответами:

В программе в отдельной функции подсчитать количество - C++
В программе в отдельной функции подсчитать количество положительных элементов квадратной целочисленной таблицы В порядка N, расположенных...

Переменная, отображающая количество объектов, функционирующих в программе - C++
Может быть кто знает, как это сделать... задача такая: нужно в классе создать аргумент, который бы отображал, кол-во объектов...

Как учесть в программе, что в месяце может быть разное количество дней? - C++
Как учесть в программе что может быть и 28 и 29 и 30 и 31 день в месяце. Помогите пожалуйста #include <iostream> #include...

ошибка в программе, которая вычисляет количество элементов линейной таблицы В, состоящей из 15 целых чисел - C++
Добрый вечер,по этому условию: "Составить программу, которая вычисляет количество элементов линейной таблицы В, состоящей из 15 целых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.10.2009, 17:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru