Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> application updater 
:(
    Опции темы
bagos
Дата 27.1.2009, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 17.6.2006

Репутация: нет
Всего: 1



Нужно обновлять exe и пару .cfg, пару .doc, xls файлов.

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

Кто как решил этот вопрос? Буду благодарен на алгоритм, за исходник тоже;))

Добавлено через 4 минуты и 58 секунд
Причем  обновления должны скачиваться с локального сервера на котором http не стоит
PM MAIL   Вверх
Virtuals
Дата 28.1.2009, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 2
Всего: 11




Цитата(bagos @  27.1.2009,  14:19 Найти цитируемый пост)
Причем  обновления должны скачиваться с локального сервера на котором http не стоит

а что там стоит?
FTP?
или тупо через NetBios с расшареной папки?

ЗЫ лично я ничего не изобретал, если с расшареной папки, то:
формирую обновление как SFX архив, в нем все нужные файлы для обновления, и указание пути в программфалах где прога стоит, сначало распаковывается маненькая прога "киллер", запускается - прибивает запущеный софт, распаковывается архив поверх, и запускается рабочий софт. все никаких велосипедов.
PM MAIL ICQ   Вверх
bagos
Дата 28.1.2009, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 17.6.2006

Репутация: нет
Всего: 1



обновление будет в расшаренной папке "мои документы", как туда подключится чтобы скачать обновление?
PM MAIL   Вверх
Ildar
Дата 28.1.2009, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.10.2006

Репутация: 1
Всего: 1



Цитата(bagos @ 28.1.2009,  13:51)
обновление будет в расшаренной папке "мои документы", как туда подключится чтобы скачать обновление?

Используйте обычную функцию копирования файлов.
Имя источника задавайте как полный путь (\\PCNAME\myfolder).
PM MAIL WWW ICQ Skype GTalk   Вверх
bagos
Дата 28.1.2009, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 17.6.2006

Репутация: нет
Всего: 1



Код

function GetInetFile(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
   Result:=False;
   sAppName := ExtractFileName(Application.ExeName);
   hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
         nil, nil, 0);
   try
      hURL := InternetOpenURL(hSession,
      PChar(fileURL),nil,0,0,0);
      try
         AssignFile(f, FileName);
         Rewrite(f,1);
         repeat
            InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
            BlockWrite(f, Buffer, BufferLen)
         until BufferLen = 0;
         CloseFile(f);
         Result:=True;
      finally
      InternetCloseHandle(hURL)
      end
   finally
   InternetCloseHandle(hSession)
   end
end;


Код

procedure TForm1.Button1Click(Sender: TObject);
var FileOnNet, LocalFileName: string;
begin
   FileOnNet := '\\Router\public\123123123123.txt';
   LocalFileName := 'C:\gg.txt';

   if GetInetFile(FileOnNet,LocalFileName) = True then
      ShowMessage('Download successful')
   else
      ShowMessage('Error in file download');
end;


Добавлено через 3 минуты и 54 секунды
Хрень какая то, создает файл gg.txt очень большого размера. Наверно неправильно подключаюсь к расшаренной папке?
PM MAIL   Вверх
Virtuals
Дата 28.1.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 2
Всего: 11



bagos
Цитата(bagos @  28.1.2009,  13:51 Найти цитируемый пост)
обновление будет в расшаренной папке "мои документы", как туда подключится чтобы скачать обновление?

очень не рекомендую расшаривать папку мои документы, будут проблемы с доступом!
PM MAIL ICQ   Вверх
bagos
Дата 28.1.2009, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 17.6.2006

Репутация: нет
Всего: 1



по поводу моих документов это я образно. разумеется будет использоваться другая папка.

Все равно не пашет как надо:(
PM MAIL   Вверх
bagos
Дата 10.2.2009, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 17.6.2006

Репутация: нет
Всего: 1



Кто то же сталкивался с данной темой? Напишите как решили!
PM MAIL   Вверх
Ildar
Дата 10.2.2009, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.10.2006

Репутация: 1
Всего: 1



Цитата(bagos @  10.2.2009,  13:17 Найти цитируемый пост)
Напишите как решили! 


Есть функция:
Код

procedure GetFileThrowShare(Path: String);
var bLoaded: Boolean;
begin
  bLoaded:= CopyFile(PChar(Path), PChar(ExtractFilePath(ParamStr(0)) + ExtractFileName(Path)), False);
  if not bLoaded then
    ShowMessage('copy result:' + BoolToStr(bLoaded, True) + ' error:' + SysErrorMessage(GetLastError))
  else
    ShowMessage('copy result OK: ' + BoolToStr(bLoaded, True));
end;


Вызывается так:
Код

GetFileThrowShare('\\10.1.2.117\tmp\stat.xml');


Все ShowMessage уберите, у меня там вообще функция логирования вызывается.
Как я выше в этой ветке написал, используйте обычную функцию копирования. У меня все работает.
PM MAIL WWW ICQ Skype GTalk   Вверх
bagos
Дата 10.2.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 17.6.2006

Репутация: нет
Всего: 1



Спасибо! То что надо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1174 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.