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

Ограничение по времени работы программы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Ihtiandr
 Аватар для Ihtiandr
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 32
07.07.2011, 12:08     Ограничение по времени работы программы #1
Всем доброго времени суток.

Есть задача:

Программа (любая) должна позволять пользоваться ей на любом компьютере три дня а после истечения данного времени запрашивать имя и пароль для продолжения работы на ней.
Пожалуйста помогите разобраться с этим на с++.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2011, 12:08     Ограничение по времени работы программы
Посмотрите здесь:

Оценка времени работы C++
C++ Ограничение времени ввода.
C++ Ограничение работы длл
Уменьшение времени работы программы C++
C++ Уменьшать счетчик времени работы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
07.07.2011, 12:20     Ограничение по времени работы программы #2
Самый простой способ - при первом запуске создавать где-нибудь в системном каталоге файл, а потом при каждом запуске проверять дату его создания и сравнивать с текущей. Как только разница > 3 дней просить пароль там или еще что-нибудь.
Ihtiandr
 Аватар для Ihtiandr
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 32
07.07.2011, 12:31  [ТС]     Ограничение по времени работы программы #3
mimicria
Можете пожалуйста пример показать?
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
07.07.2011, 12:42     Ограничение по времени работы программы #4
Цитата Сообщение от Ihtiandr Посмотреть сообщение
Можете пожалуйста пример показать?
Чего именно пример? Вот пример получения времени создания файла
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.07.2011, 12:48     Ограничение по времени работы программы #5
Цитата Сообщение от mimicria Посмотреть сообщение
Вот пример получения времени создания файла
Можно сделать проще - прям в файл записать время создания, потом сравнивать его с текущим)
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
07.07.2011, 12:52     Ограничение по времени работы программы #6
Цитата Сообщение от Kastaneda Посмотреть сообщение
Можно сделать проще - прям в файл записать время создания, потом сравнивать его с текущим)
Это время внутри можно элементарно подправить, для правки даты создания нужны чуть большие усилия.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.07.2011, 12:55     Ограничение по времени работы программы #7
Цитата Сообщение от mimicria Посмотреть сообщение
Это время внутри можно элементарно подправить, для правки даты создания нужны чуть большие усилия.
Нет, ну если так рассуждать, то файл можно вообще удалить, и программа каждый раз будет думать, что она впервые запускается)
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
07.07.2011, 12:59     Ограничение по времени работы программы #8
Цитата Сообщение от Kastaneda Посмотреть сообщение
Нет, ну если так рассуждать, то файл можно вообще удалить
Именно поэтому я написал, что способ простейший. И чтобы не выдумывать велосипед проще воспользоваться готовыми протекторами.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.07.2011, 13:01     Ограничение по времени работы программы #9
Можно ключ в реестре создать...
Ihtiandr
 Аватар для Ihtiandr
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 32
07.07.2011, 13:11  [ТС]     Ограничение по времени работы программы #10
Kastaneda
А как это сделать при помощи создания ключа в реестре?
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.07.2011, 13:17     Ограничение по времени работы программы #11
Цитата Сообщение от mimicria Посмотреть сообщение
Самый простой способ - при первом запуске создавать где-нибудь в системном каталоге файл, а потом при каждом запуске проверять дату его создания и сравнивать с текущей. Как только разница > 3 дней просить пароль там или еще что-нибудь.
А смысл? Элементарный перевод календаря на тысячу лет и можно даже не искать файл. Да и найти его не проблема, а найдя произвольно модифицировать его перед запуском. Причём, чтоб исправлять именно дату создания, а не модификации, стирать файл к фигам и снов создавать. Даже проверка даты самого экзешника похитрее будет: об использовании файла и так известно и никому в голову не придёт его отслеживать, а в нём то всё и дело. Только от календаря опять не спасёт.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
07.07.2011, 13:26     Ограничение по времени работы программы #12
Цитата Сообщение от taras atavin Посмотреть сообщение
Элементарный перевод календаря
Я что, каждому повторять буду? СПОСОБ ПРОСТЕЙШИЙ. ДЛЯ ТРЕНИРОВКИ. Нужен лучше - придумайте сами.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.07.2011, 13:28     Ограничение по времени работы программы #13
Цитата Сообщение от mimicria Посмотреть сообщение
Это время внутри можно элементарно подправить, для правки даты создания нужны чуть большие усилия.
Что может быть проще, чем стереть файл, сразу создать под старым именем и записать туда какой нибудь текстовый символ? А вот дату и время в самом файле можно зашифровать каким нибудь длинным ключом. Даже простая ксорка и то не сопоставимо сложнее ломается, (но в разы проще делается), а если тридцатикратный DES сотни дублей? А после дешифровки проверять не только разницу, но и совпадение с дублями. Причём, файл должен уже быть при первом запуске, создаётся дистрибутивом, сам дистрибутив при этом приводится в негодность (о чём ни кто заранее не догадается), а все его скачки пишутся на сервере.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.07.2011, 13:35     Ограничение по времени работы программы #14
Цитата Сообщение от Ihtiandr Посмотреть сообщение
Kastaneda
А как это сделать при помощи создания ключа в реестре?
Где-то на форуме относительно недавно видел код создания ключа, попробуй поискать.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.07.2011, 13:44     Ограничение по времени работы программы #15
Вот ещё способ: оптом покупаешь электронные ключи, программируешь их не только на подтверждение лицензии, но и на учёт времени использования проги и продаёщь вместе с прогой включив в цену первых 24-х часов чистого времени использования проги, потом ключ перестаёт отвечать правильно и подлежит доверенному перепрограммированию.
Ihtiandr
 Аватар для Ihtiandr
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 32
07.07.2011, 14:11  [ТС]     Ограничение по времени работы программы #16
Kastaneda
Я попробовал вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <time.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void main ()
{
    time_t seconds;
    seconds = time (NULL);
    char login[]="ihtiandr";
    char password[]="ihtiandr";
    ifstream INPUT("thetime.txt",ios::in);
    if(INPUT.is_open())
    {
        time_t previous_time;
        INPUT>>previous_time;
        if((difftime(seconds,previous_time)/3600)>=72)
        {
            char input_login[10];
            char input_password[10];
            
            cout<<"enter login and password:\n";
            cout<<"enter login: ";
            cin.getline(input_login,9);
            cin.clear();
            _flushall();
            cout<<"enter password: ";
            cin.getline(input_password,9);
            cin.clear();
            _flushall();
            if( ((string)login!=(string)input_login) || ((string)password!=(string)input_password) )
            {
                cout<<"u failed to pick the lock, goodbye\n";
                return;
            }
            else
                cout<<"login and password correct, come in\n";
        }
    }
    else
    {
        ofstream OUTPUT("thetime.txt",ios::out);
        OUTPUT<<seconds;
    }
    cout<<"some actions inside of the program\n";
}
А как с созданием ключа в реестре так и не понял.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
08.07.2011, 00:08     Ограничение по времени работы программы #17

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdlib.h>
#include <Windows.h>
 
 
void main (void) {
 
      char value[32];
      FillMemory(value, '\0', sizeof(value));
      SYSTEMTIME  tm;
      GetLocalTime(&tm);
 
       // если нет записи с ключом dateKEY 
      if(!  GetPrivateProfileSection("dateKEY", value, sizeof(value), NULL)) {
             wsprintf(value, "%d",  tm.wYear * 360 + tm.wMonth * 30 + tm.wDay);
             WritePrivateProfileSection("dateKEY",  value, NULL);  // создаём его
      
      } else {
             
             long  day = (tm.wYear * 360 + tm.wMonth * 30 + tm.wDay) - atol(value);
    if(day > 3) { // если прошло уже три дня
 
                        // здесь пишешь пароль для ввода и т.д...
                        
            }
      }
      
       sytem("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2011, 21:37     Ограничение по времени работы программы
Еще ссылки по теме:

Подсчет времени работы программы C++
Разработать класс CTime для работы со значениями времени C++
Измерение времени работы кода C++

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

Или воспользуйтесь поиском по форуму:
Ihtiandr
 Аватар для Ihtiandr
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 32
08.07.2011, 21:37  [ТС]     Ограничение по времени работы программы #18
xAtom спасибо
Yandex
Объявления
08.07.2011, 21:37     Ограничение по времени работы программы
Ответ Создать тему
Опции темы

Текущее время: 13:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru