6 / 6 / 0
Регистрация: 03.06.2015
Сообщений: 66
|
|
1 | |
Как сделать так чтобы можно было кликать по кнопке только 1 раз в день?23.06.2017, 00:43. Показов 2157. Ответов 4
Метки нет (Все метки)
Хаи. Описал проблему уже в заголовке. Мне нужно чтобы button1 был активен, после нажатия на нее деактивировался до завтрашнего полдня.(12:00). как можно такое сделать. примерчик не помешал бы
0
|
23.06.2017, 00:43 | |
Ответы с готовыми решениями:
4
Как сделать так чтобы можно было ввести только дату? Как сделать так чтобы в QLineEdit можно было вводить только буквы Как сделать так чтобы в textbox можно было вписать только буквы? Как сделать так, чтобы можно было закрыть только текущую Форму? |
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
|
23.06.2017, 11:50 | 2 |
Если работа идет на локальной системе, без использования удаленного сервера (для проверки даты и факта нажатия кнопки) - то практически никак, даже записывая в файл - человек его откроет, поменяет значение - и заново нажмет кнопку.
Овчинка выделки не будет стоить. Так что раскошельтесь на удаленное хранение информации. + Идентификация конкретного пользователя, который запускает приложение, так как куки, хеши, и всю остальную лабудень можно поменять в процессе передачи информации от клиента к серверу (при большом желании).
1
|
6 / 6 / 0
Регистрация: 03.06.2015
Сообщений: 66
|
|
23.06.2017, 18:07 [ТС] | 3 |
0
|
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
|
|
23.06.2017, 19:26 | 4 |
Сообщение было отмечено prince_of_sheki как решение
Решение
Добавьте булеву переменную в программу. При нажатии на кнопку меняйте ее значение. К примеру, начальное значение false, при нажатии меняется на true. При каждом нажатии нужно вставить проверку на значение этой переменной. Если false, то выполняем действие, если true, то нет. Ну и периодически нужно делать проверку на то, наступил ли полдень следующего дня, чтобы сбросить значение. Проверку можно сделать при запуске программы, либо, если планируется достаточно длительное использование в рамках одного запуска проги, по таймеру. При закрытии программы переменную придется сохранять в файл/реестр/файл настроек программы. А при старте считывать ее. Задача то, в принципе, банальная... Единственная проблема только в том, что, как сказал hoolygan, пользователь может отредактировать файл или ключ реестра.
Добавлено через 1 минуту ЗЫ А продвинутый пользователь сможет еще и вскрыть Ваш код и изменить его, чтобы можно было тыкать на кнопку хоть каждую секунду!
1
|
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
|
24.06.2017, 03:58 | 5 |
Shogun31337, не только файл. Это как раз пол беды, потому что файл можно шифровать. Главная проблема, которую нужно учесть - это время. Нужно время проверять не системное, а с удаленного сервера, но даже в этом случае есть шанс подмены и перехвата. Поэтому и писал, что эти данные нужно хранить удаленно.
Поскольку я в 90 % работаю с БД - то предпочитаю держать пользователей, и работу их именно в сиквеле. Алгоритм на самом деле прост в этом случае. При запуске программы проверяем пользователя с любой системы, лишь бы централизовано, будь то AD, или бд. Далее в сиквеле сделал бы простую табличку с полями id пользователя, битовое поле сигнал о нажатии, и дата с временем. Далее при входе пользователя проверять состояние битового поля и даты - этим включаю/отключаю кнопку. При нажатии делаем полезную работу и посылаем в бд сообщение о нажатии. Сервер пишет свое время, айдишку юзера и ставит поле в true. Главное отловить момент между полезным трудом и посылкой на сервер, обдумать момент обрыва связи, например, не выполнять действия, если связи нету, но это уже отдельно продумать, в зависимости от того, какое действие пользователь делает. Поскольку поля ставятся на сервере - исключен вариант подмена времени и пользователя.
1
|
24.06.2017, 03:58 | |
24.06.2017, 03:58 | |
Помогаю со студенческими работами здесь
5
Не могу доделать Калькулятор( как сделать так чтобы запятую можно было писать 1 раз ) Как сделать так чтобы в текстовом окне можно было вводить только цыфры и запятую? Как сделать так чтобы можно было вводить разное количество букв, а не только пять? Как сделать так, чтобы в строку редактирование (edit) можно было ввести только цифры и запятую? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |