Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/41: Рейтинг темы: голосов - 41, средняя оценка - 4.66
1 / 1 / 0
Регистрация: 03.01.2011
Сообщений: 32
1

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

07.07.2011, 12:08. Показов 8409. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток.

Есть задача:

Программа (любая) должна позволять пользоваться ей на любом компьютере три дня а после истечения данного времени запрашивать имя и пароль для продолжения работы на ней.
Пожалуйста помогите разобраться с этим на с++.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2011, 12:08
Ответы с готовыми решениями:

Реализовать ограничение работы программы (демо - режим)
Коллеги, здравствуйте. Поставили передо мной задачу такого плана: необходимо написать программу,...

Подсчет времени работы программы
пожалуйста помогите посчитать время программы с функцией.не знаю почему программа выдает что-то...

Подсчет времени работы программы
Есть код программы. Задача такая - вставить таймер который будет считать сколько времени работала...

Уменьшение времени работы программы
Добрый вечер. Решил задачу, и решил прогнать по ********. Программа заваливается по времени...

18
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
07.07.2011, 12:20 2
Самый простой способ - при первом запуске создавать где-нибудь в системном каталоге файл, а потом при каждом запуске проверять дату его создания и сравнивать с текущей. Как только разница > 3 дней просить пароль там или еще что-нибудь.
0
1 / 1 / 0
Регистрация: 03.01.2011
Сообщений: 32
07.07.2011, 12:31  [ТС] 3
mimicria
Можете пожалуйста пример показать?
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
07.07.2011, 12:42 4
Цитата Сообщение от Ihtiandr Посмотреть сообщение
Можете пожалуйста пример показать?
Чего именно пример? Вот пример получения времени создания файла
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
07.07.2011, 12:48 5
Цитата Сообщение от mimicria Посмотреть сообщение
Вот пример получения времени создания файла
Можно сделать проще - прям в файл записать время создания, потом сравнивать его с текущим)
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
07.07.2011, 12:52 6
Цитата Сообщение от Kastaneda Посмотреть сообщение
Можно сделать проще - прям в файл записать время создания, потом сравнивать его с текущим)
Это время внутри можно элементарно подправить, для правки даты создания нужны чуть большие усилия.
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
07.07.2011, 12:55 7
Цитата Сообщение от mimicria Посмотреть сообщение
Это время внутри можно элементарно подправить, для правки даты создания нужны чуть большие усилия.
Нет, ну если так рассуждать, то файл можно вообще удалить, и программа каждый раз будет думать, что она впервые запускается)
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
07.07.2011, 12:59 8
Цитата Сообщение от Kastaneda Посмотреть сообщение
Нет, ну если так рассуждать, то файл можно вообще удалить
Именно поэтому я написал, что способ простейший. И чтобы не выдумывать велосипед проще воспользоваться готовыми протекторами.
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
07.07.2011, 13:01 9
Можно ключ в реестре создать...
0
1 / 1 / 0
Регистрация: 03.01.2011
Сообщений: 32
07.07.2011, 13:11  [ТС] 10
Kastaneda
А как это сделать при помощи создания ключа в реестре?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.07.2011, 13:17 11
Цитата Сообщение от mimicria Посмотреть сообщение
Самый простой способ - при первом запуске создавать где-нибудь в системном каталоге файл, а потом при каждом запуске проверять дату его создания и сравнивать с текущей. Как только разница > 3 дней просить пароль там или еще что-нибудь.
А смысл? Элементарный перевод календаря на тысячу лет и можно даже не искать файл. Да и найти его не проблема, а найдя произвольно модифицировать его перед запуском. Причём, чтоб исправлять именно дату создания, а не модификации, стирать файл к фигам и снов создавать. Даже проверка даты самого экзешника похитрее будет: об использовании файла и так известно и никому в голову не придёт его отслеживать, а в нём то всё и дело. Только от календаря опять не спасёт.
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
07.07.2011, 13:26 12
Цитата Сообщение от taras atavin Посмотреть сообщение
Элементарный перевод календаря
Я что, каждому повторять буду? СПОСОБ ПРОСТЕЙШИЙ. ДЛЯ ТРЕНИРОВКИ. Нужен лучше - придумайте сами.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.07.2011, 13:28 13
Цитата Сообщение от mimicria Посмотреть сообщение
Это время внутри можно элементарно подправить, для правки даты создания нужны чуть большие усилия.
Что может быть проще, чем стереть файл, сразу создать под старым именем и записать туда какой нибудь текстовый символ? А вот дату и время в самом файле можно зашифровать каким нибудь длинным ключом. Даже простая ксорка и то не сопоставимо сложнее ломается, (но в разы проще делается), а если тридцатикратный DES сотни дублей? А после дешифровки проверять не только разницу, но и совпадение с дублями. Причём, файл должен уже быть при первом запуске, создаётся дистрибутивом, сам дистрибутив при этом приводится в негодность (о чём ни кто заранее не догадается), а все его скачки пишутся на сервере.
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
07.07.2011, 13:35 14
Цитата Сообщение от Ihtiandr Посмотреть сообщение
Kastaneda
А как это сделать при помощи создания ключа в реестре?
Где-то на форуме относительно недавно видел код создания ключа, попробуй поискать.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.07.2011, 13:44 15
Вот ещё способ: оптом покупаешь электронные ключи, программируешь их не только на подтверждение лицензии, но и на учёт времени использования проги и продаёщь вместе с прогой включив в цену первых 24-х часов чистого времени использования проги, потом ключ перестаёт отвечать правильно и подлежит доверенному перепрограммированию.
0
1 / 1 / 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";
}
А как с созданием ключа в реестре так и не понял.
0
935 / 760 / 299
Регистрация: 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");
}
2
1 / 1 / 0
Регистрация: 03.01.2011
Сообщений: 32
08.07.2011, 21:37  [ТС] 18
xAtom спасибо
0
3 / 2 / 2
Регистрация: 22.12.2016
Сообщений: 219
28.07.2018, 05:49 19
Всем доброго. Помогите написать с проверкой даты создания билда на 3 дня также, что бы это работало на всех ПК, а не там где запускал. Спасибо!

C++
1
2
3
4
5
6
7
8
9
10
TDateTime FileTimeToDateTime(FILETIME *lpftime)
{
    FILETIME  localfiletime;
    SYSTEMTIME  systime;
    FileTimeToLocalFileTime(lpftime,&localfiletime);
    FileTimeToSystemTime(&localfiletime,&systime);
    return(TDateTime(systime.wYear,  systime.wMonth, systime.wDay)+
    TDateTime(systime.wHour,  systime.wMinute,
    systime.wSecond, systime.wMilliseconds));
    }
0
28.07.2018, 05:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.07.2018, 05:49
Помогаю со студенческими работами здесь

ограничение времени работы программы
Есть прога, как сделать, чтоб по истечении 100 дней после первого запуска на компьютере, прога не...

Ограничение времени работы программы (триальный период)
Привет всем! Необходимо сделать пробный период для программы к примеру 30 дней. То решение когда,...

Ограничение времени работы в AD
Мне необходимо ограничить время работы для пользователей определенной группы. Например, чтобы...

Ограничение работы функции по времени
Как сделать ограничение по времени? Например если функция выполняется больше 15 секунд то вывести...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru