Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как сделать обновление программы или лоадера на C++
Как сделать обновление программы или лоадера на C++
В данной статье я вам расскажу как сделать простенькую проверку на обновление вашей программы или лоадера на языке программирования C++
Если вы хотите что бы пользователи скачали последнию версию вашей программы то мы реализуем функцию которая будет проверять на веб части версию клиента и сравнивать ее с клиенской части и если они не схожи то обновлять либо же открыть ссылку на скачивание обновленного лоадера или программы
Для начало мы подклюим директивы для работы с интернетом
#include <WinInet.h>
#pragma comment(lib, "WinInet.lib")
Давайте добавим в коде переменную версий текущей для нашей программы и будем ее проверять через метод DownloadString который будет ниже
string version = "1.0";
Теперь давайте реализуем функцию скачивание строки и замену строк
Давайте сделаем проверку в начале точки входа нашей программы:
Если вы хотите что бы пользователи скачали последнию версию вашей программы то мы реализуем функцию которая будет проверять на веб части версию клиента и сравнивать ее с клиенской части и если они не схожи то обновлять либо же открыть ссылку на скачивание обновленного лоадера или программы
Для начало мы подклюим директивы для работы с интернетом
#include <WinInet.h>
#pragma comment(lib, "WinInet.lib")
Давайте добавим в коде переменную версий текущей для нашей программы и будем ее проверять через метод DownloadString который будет ниже
string version = "1.0";
Теперь давайте реализуем функцию скачивание строки и замену строк
C++:
string replaceAll(string subject, const string& search, const string& replace) {
size_t pos = 0;
while ((pos = subject.find(search, pos)) != string::npos) {
subject.replace(pos, search.length(), replace);
pos += replace.length();
}
return subject;
}
C++:
string DownloadString(string URL) {
HINTERNET interwebs = InternetOpenA("Mozilla/5.0", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL);
HINTERNET urlFile;
string rtn;
if (interwebs) {
urlFile = InternetOpenUrlA(interwebs, URL.c_str(), NULL, NULL, NULL, NULL);
if (urlFile) {
char buffer[2000];
DWORD bytesRead;
do {
InternetReadFile(urlFile, buffer, 2000, &bytesRead);
rtn.append(buffer, bytesRead);
memset(buffer, 0, 2000);
} while (bytesRead);
InternetCloseHandle(interwebs);
InternetCloseHandle(urlFile);
string p = replaceAll(rtn, "|n", "\r\n");
return p;
}
}
InternetCloseHandle(interwebs);
string p = replaceAll(rtn, "|n", "\r\n");
return p;
}
Давайте сделаем проверку в начале точки входа нашей программы:
C++:
if(version != DownloadString("Ссылка для чтения текста версий")) { // Если версия не равняется с клиентской части, обновляем
printf("Programm is outdated, please download a new version");
Sleep(3000); // Добавляем ожидание 3 секунды что бы пользователь смог прочитать
system("start https://google.com") // вместо google.com укажите версию откуда скачать новую версию
exit(0); // Делаем выход из программы
}