На нашем форуме вы сможете найти самые свежие и рабочие Читы для CrossFire, Читы для Point Blank, Читы для SAMP, Читы для cs 1.6, Читы для World Of Tanks, WOW Читы, Вконтакте Баги, Черный Рынок.

Апдейтр на VC++

08 авг 2014, 20:40

Основная часть апдейтера - проверка обновления(скачивание фаила в расчет не берем)....

И так, проект WinForm....

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


Подключаем нужное:
#include <fstream>
#include <stdio.h>
#include <urlmon.h>
#include <io.h>
#pragma comment(lib, "urlmon.lib")
using namespace std;
#pragma warning(disable: 4996)


ФУНКЦИЯ ПРОВЕРКИ СУЩЕСТВОВАНИЯ ФАИЛА
bool FileExists(const char *fname){return access(fname, 0) != -1;}


ФУНКЦИЯ ПЕРЕЗАПИСИ ВЕРСИИ
void ToFaleWrite(char * _FileName,char * _UrlFileWeb)
{
char webVer[4]; //временный буффер
URLDownloadToFile(NULL,_UrlFileWeb, "temp.txt", 0, 0);//скачиваем фаил
FILE *P = fopen( "temp.txt","r"); //открываем для чтения скаченный фаил
FILE *f = fopen(_FileName,"r+"); //открываем для чтения локальный фаил
fgets(webVer, 4, P); //заносим в переменную
fwrite(webVer,1,4,f); // записываем
fclose(f);//закрываем локальный фаил
fclose(P);//закрываем скаченный фаил
remove("temp.txt");//удаляем скаченый фаил
}


ФУНКЦИЯ СОЗДАНИЯ ФАИЛА И ЗАПИСИ В НЕГО
void CreatFile(char * _FileName,char * InFile)
{
fstream *fs =new fstream(_FileName,ios::out|ios::binary);
fs->write(InFile, 4);
fs->close();
}


ФУНКЦИЯ ПРОВЕРКИ ОБНОВЛЕНИЯ
КОД: ВЫДЕЛИТЬ ВСЕ
BOOL Check_New_Fale(char * _FileLoc,char * _FileWeb,char * _UrlFileWeb)
{
if (!FileExists(_FileLoc))//проверяем существование фаила и в случаи отсутствия создаем с заполнением
{
CreatFile(_FileLoc,"0.0");
}
char webVer[4];
char locVer [4] ;
URLDownloadToFile(NULL,_UrlFileWeb, _FileWeb, 0, 0);
FILE *filePtr;
FILE *filePtr_1;
filePtr = fopen(_FileWeb,"r");
filePtr_1 = fopen(_FileLoc,"r");

if(filePtr != NULL )
{
fgets(webVer, 4, filePtr);
fgets(locVer, 4, filePtr_1);
fclose(filePtr_1);
fclose(filePtr);
if (strcmp(locVer, webVer) == 0)
{
remove(_FileWeb);
return 3;
}
else
{
remove(_FileWeb);
return 2;
}
}
else
{
//Ошибка чтения фаила
}

fflush(stdin);
getchar();
return 0;
}


Используем все так(например Form_Load):
if(Check_New_Fale("loc_ver.ini","version.ini","http://**********.ru/version.ini")==2)
{
label1->Text = "Требуется обновление";
}
else
{
label1->Text = "У вас последняя версия";
}


О ФУНКЦИи ПЕРЕЗАПИСИ ВЕРСИИ:
Вызываем ее после скачивания фаила

ToFaleWrite("loc_ver.ini","http://**********.ru/version.ini");


Ставим спасибки :)

Re: Апдейтр на VC++

05 сен 2014, 23:21

ZorgeeAES писал(а):
Ставим спасибки :)

За что? Ты даже мой орф. ошибки не исправил)

Re: Апдейтр на VC++

05 сен 2014, 23:45

Крайслер2 писал(а):
ZorgeeAES писал(а):
Ставим спасибки :)

За что? Ты даже мой орф. ошибки не исправил)

Ухх.
Просто спасибки

Re: Апдейтр на VC++

13 ноя 2014, 16:05

это Win APi ?
Сообщений: 4 Страница 1 из 1

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

Показать больше...