Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 08.05.2018
Сообщений: 35

Реализовать проверку текущей версии программы и оповещение пользователя о новых версиях

23.07.2018, 03:12. Показов 1569. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Меня интересует то, как я могу подключить базу данных к проекту C++? Или даже не базу данных? Проблема в том, что мне нужно сделать обновление программмы (хотябы ручное)! Например: пользователь пользуется моей программой, которую я обновил, но как старая программа (которая у пользователя) поймёт что вышла новая версия? Я прочитал, что она должна как-то сравнивать версии программы (хотябы название txt файла и перменной в программе), но вот как это сделать на практике, я не знаю! Вроде нужен какой-то сервер (мне поэтому сразу и вспомнилась база данных)! Прошу помощи! Надеюсь вы меня поняли! Заранее спасибо)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.07.2018, 03:12
Ответы с готовыми решениями:

Как в функции-члене int Queue::get() реализовать оповещение пользователя о том, что очередь заполнена?
Ребята, делаю пример из книги, в котором необходимо создать очередь. Вот код: Queue.h #pragma once #include <iostream> ...

Как реализовать обновление и проверку версии программы через интернет?
2) Как реализовать обновление и проверку версии программы через интернет? Delphi XE5

Как реализовать проверку, при вводе пользователя и пароля, забитых в БД
Имеется БД в аксес с одной таблице (поля пользователь и поле пароль). На форме в шарпе, есть текстбокс 1 и текстобк 2, и кнопка. Как...

3
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,929
23.07.2018, 09:44
Программа должна ткнуться в "репозиторий", считать номер последней версии и сравнить со своим. "Репозиторий" - любое хранилище, адрес которого программа знает и в котором будут появляться новые версии. Это может быть сервер, сайт, даже фиксированный адрес на харде или флешке.
Например, программа считает, что все обновления приходят на ftp://mega_program@127.0.0.1/mega_program/v.100.500.0. Она время от времени лезет туда и сравнивает версию того файла со своей (если не давать юзеру права на запись, то номер версии можно записать прямо в имени файла).
1
0 / 0 / 0
Регистрация: 08.05.2018
Сообщений: 35
25.07.2018, 03:09  [ТС]
COKPOWEHEU, спасибо за подробное объяснение, но не могли бы вы представить пример в виде кода? *не указывая настоящие данные! Просто в теории я уже всё понимаю, а вот как на коде, затрудняюсь(
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,929
25.07.2018, 10:42
Лучший ответ Сообщение было отмечено Qadronic как решение

Решение

Самый простой случай. Программа устанавливается локально, из каталога /mnt/flash_installer/super_prog/update/, там лежит файл version.txt, в котором записана версия
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//допустим, текущая версия 0.1.4
#define VERSION_MAJOR 0
#define VERSION_MINOR 1
#define VERSION_PATCH 4
 
char *update_path = "/mnt/flash_installer/super_prog/update/version.txt";
 
bool test_version(){
  FILE *pf = fopen(update_path, "rt");
  if(pf == NULL){
    fprintf(stderr, "Update: can not read version file\n");
    return 0;
  }
  int vmaj, vmin, vpat;
  if(fscanf(pf, "%i.%i.%i", &vmaj, &vmin, &vpat) < 3){
    fprintf(stderr, "Update: version file incorrect\n");
    fclose(pf);
    return 0;
  }
  fclose(pf);
  return (vmaj != VERSION_MAJOR || vmin != VERSION_MINOR || vpat != VERSION_PATCH);
}
Между прочим, вполне реалистичный вариант. Допустим, к вам время от времени приходит разработчик программы со своей флешкой. При первой установке программы она изменила настройки компьютера чтобы всегда монтироваться в /mnt/flash_installer. А ведь на подключение флешек можно еще пользовательские действия навесить... хотя это, конечно, дыра в безопасности. Как, впрочем, и остальные нецентрализованные обновления.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.07.2018, 10:42
Помогаю со студенческими работами здесь

О новых версиях PHP
Есть очень противная и странная проблема.(для меня) На сайте(http://tennis-things.zz.vc) в самом верху есть сообщение об ошибке: ...

Работа cam2img в новых версиях Eagle
Приветствую всех! Раньше для распечатки фотошаблонов пользовался cam2img -&gt; gerb274x -&gt; в формат png. И было все отлично до версии...

Ajax_result замена в более новых версиях
Здравствуйте. У меня используется jquery последней версии, и старый js перевожу на новую версию. В старой версии используется -...

работа c Microsoft SQL на новых версиях php
Есть php 5.5.6, раньше работал sqlsrv_connect или PDO. А теперь не работают, что можно использовать теперь?

E-mail Оповещение о новых письмах на форуме
На одном из форумов в интернете нету e-mail оповещений. Необходимо чтобы на мыло приходило оповещение о том что на форуме, в выбранной...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru