Автообновление программ — различия между версиями
Aleksnick (обсуждение | вклад) |
Aleksnick (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | =Кодировка версий= | + | =Механизм автообновления программ спомощью батника= |
+ | |||
+ | ==Кодировка версий== | ||
для автообновления версии программ должны указываться в числовом формате и содержать 6 знаков.<br> | для автообновления версии программ должны указываться в числовом формате и содержать 6 знаков.<br> | ||
примеры по кассиру: | примеры по кассиру: | ||
Строка 14: | Строка 16: | ||
− | =Установка= | + | ==Установка== |
− | ==Скачиваем архив с нужными файлами== | + | ===Скачиваем архив с нужными файлами=== |
\\SUPA\zclientxp\_releases\autoUpdate\ | \\SUPA\zclientxp\_releases\autoUpdate\ | ||
или [[Медиа:Autoupdate_1.0.zip]] | или [[Медиа:Autoupdate_1.0.zip]] | ||
− | ==Распаковываем файлы== | + | ===Распаковываем файлы=== |
Распаковываем файлы в папке с программой, на которую хотим настроить автообновление, например: | Распаковываем файлы в папке с программой, на которую хотим настроить автообновление, например: | ||
<pre> | <pre> | ||
Строка 26: | Строка 28: | ||
</pre> | </pre> | ||
− | ==Настраиваем файл update.ini== | + | ===Настраиваем файл update.ini=== |
В катологе программы, после распаковки архива | В катологе программы, после распаковки архива | ||
* '''name''' - название exe файла | * '''name''' - название exe файла | ||
Строка 39: | Строка 41: | ||
путь придумываем понятный и только маленькими латинскими буквами! | путь придумываем понятный и только маленькими латинскими буквами! | ||
− | ==Меняем ярлык== | + | ===Меняем ярлык=== |
* На рабочем столе путь в ярлыке нужной программы меняем таким образом, чтобы он запускал файл '''update.bat''', например: | * На рабочем столе путь в ярлыке нужной программы меняем таким образом, чтобы он запускал файл '''update.bat''', например: | ||
<pre> | <pre> | ||
Строка 49: | Строка 51: | ||
</pre> | </pre> | ||
− | ==Настраиваем файл с актуальной версией== | + | ===Настраиваем файл с актуальной версией=== |
в папке | в папке | ||
<pre> | <pre> | ||
Строка 63: | Строка 65: | ||
</pre> | </pre> | ||
− | ==Выкладываем актуальный файл== | + | ===Выкладываем актуальный файл=== |
по пути | по пути | ||
<pre> | <pre> | ||
Строка 73: | Строка 75: | ||
</pre> | </pre> | ||
− | ==Проверяем== | + | ===Проверяем=== |
* Запускаем ярлык. | * Запускаем ярлык. | ||
* Если что-то не получилось, читаем файл '''update.log''' в папке с программой. | * Если что-то не получилось, читаем файл '''update.log''' в папке с программой. | ||
+ | |||
+ | |||
+ | =Механизм автообновления программ по синхронизации= | ||
+ | ТМС в менеджере: | ||
+ | <pre> | ||
+ | |||
+ | uses | ||
+ | Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, Messages, SysUtils, | ||
+ | ToolWin, ImgList, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, StdCtrls, | ||
+ | unMain,DB, IBQuery, IBDatabase, unDM, DBTables, cfdxUtils, Menus, System, | ||
+ | Buttons, ExtCtrls, StdCtrls, cfSelectEdit, Math, DateUtils, | ||
+ | gb_table, Grids, ClipBrd, DBGrids, unFrameCustomDict, | ||
+ | cfWindows, Mask, shellapi; | ||
+ | |||
+ | var qWork: TIBQuery; | ||
+ | |||
+ | procedure ShowData; | ||
+ | var t_manager:string; | ||
+ | t_bat:string; | ||
+ | File_manager: TextFile; | ||
+ | File_bat: TextFile; | ||
+ | begin | ||
+ | |||
+ | if not FileExists('update_73.bat') Then | ||
+ | begin | ||
+ | |||
+ | showmessage('Сейчас произойдет обновление программы!'); | ||
+ | |||
+ | AssignFile(File_manager,'manager_73.exe'); | ||
+ | AssignFile(File_bat,'update_73.bat'); | ||
+ | |||
+ | qWork:=dm.TempQuery(nil); | ||
+ | |||
+ | if qWork.Transaction.Active then qWork.Transaction.Rollback; | ||
+ | qWork.Transaction.StartTransaction; | ||
+ | |||
+ | qWork.Active:=false; | ||
+ | qWork.SQL.Text:='select * from reports where id=10'; | ||
+ | qWork.Active:=true; | ||
+ | t_manager:=qWork.FieldByName('DATA').AsString; | ||
+ | |||
+ | t_bat:=' | ||
+ | @echo off | ||
+ | |||
+ | if exist manager_73.exe ( | ||
+ | TASKKILL /f /im ManagerXP2.exe | ||
+ | rename ManagerXP2.exe ManagerXP2_BACKUP_73.exe | ||
+ | rename manager_73.exe ManagerXP2.exe | ||
+ | start ManagerXP2.exe | ||
+ | ) | ||
+ | exit | ||
+ | '; | ||
+ | |||
+ | qWork.Transaction.Commit; | ||
+ | qWork.Transaction.Free; | ||
+ | |||
+ | qWork.Free; | ||
+ | |||
+ | Rewrite(File_manager); | ||
+ | Rewrite(File_bat); | ||
+ | |||
+ | Writeln(File_manager,t_manager); | ||
+ | Writeln(File_bat,t_bat); | ||
+ | |||
+ | CloseFile(File_manager); | ||
+ | CloseFile(File_bat); | ||
+ | |||
+ | ShellExecute(nil, 'open', 'update_73.bat', '', nil, 1); | ||
+ | |||
+ | end; | ||
+ | |||
+ | end; | ||
+ | |||
+ | begin | ||
+ | ShowData; | ||
+ | end; | ||
+ | </pre> |
Версия 09:52, 31 августа 2016
Содержание
Механизм автообновления программ спомощью батника
Кодировка версий
для автообновления версии программ должны указываться в числовом формате и содержать 6 знаков.
примеры по кассиру:
2.1.18.7 --> 2 1 18 07 --> 211807 2.1.20.13 --> 2 1 20 13 --> 212013 2.2.1.15 --> 2 2 01 15 --> 220115
примеры по менеджеру:
2.272.24 --> 2 272 24 --> 227224 2.272.33 --> 2 272 33 --> 227233
Установка
Скачиваем архив с нужными файлами
\\SUPA\zclientxp\_releases\autoUpdate\
Распаковываем файлы
Распаковываем файлы в папке с программой, на которую хотим настроить автообновление, например:
c:\Standart-N\Kassir\
Настраиваем файл update.ini
В катологе программы, после распаковки архива
- name - название exe файла
- path - путь на нашем сервере до файла с актуальной версией
По умолчанию следующий путь: \\supa\standartn\html\update\zkassa\pharmacom\almaty\ В каталоге \\supa\standartn\html\update\ выбираем каталог с нужной программой и в ней заводим папку с наименование сети или подразделения, для которых мы планируем массовое обновление. В файле update.ini указываем следующее name-это программа по которой настраивается обновление, path - оставшаяся часть общего пути после названия программы\\supa\standartn\html\update\zkassa\pharmacom\almaty\ пример:
name=zkassa path=pharmacom/almaty
путь придумываем понятный и только маленькими латинскими буквами!
Меняем ярлык
- На рабочем столе путь в ярлыке нужной программы меняем таким образом, чтобы он запускал файл update.bat, например:
"C:\Standart-N\Kassir\update.bat"
- Иконку берем из папки ico, которая была в архиве, например:
C:\Standart-N\Kassir\ico\zkassa.ico
Настраиваем файл с актуальной версией
в папке
\\supa\standartn\html\update\
заходим в папку с названием exe, затем создаем путь который прописали в параметре path так, чтобы получился путь:
\\supa\standartn\html\update\zkassa\pharmacom\almaty\
кладем там файл update.ini, в котором должен быть номер актуальной версии в числовом формате, например версию кассира 2.2.1.15 предлагаю записывать так:
220115
Выкладываем актуальный файл
по пути
\\supa\zclientxp\_releases\!update\
создаем файл с названием программы и выкладываем актуальную версию, чтобы название было: %имя%_%версия%.exe, например:
\\supa\zclientxp\_releases\!update\zkassa\zkassa_220115.exe
Проверяем
- Запускаем ярлык.
- Если что-то не получилось, читаем файл update.log в папке с программой.
Механизм автообновления программ по синхронизации
ТМС в менеджере:
uses Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, Messages, SysUtils, ToolWin, ImgList, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, StdCtrls, unMain,DB, IBQuery, IBDatabase, unDM, DBTables, cfdxUtils, Menus, System, Buttons, ExtCtrls, StdCtrls, cfSelectEdit, Math, DateUtils, gb_table, Grids, ClipBrd, DBGrids, unFrameCustomDict, cfWindows, Mask, shellapi; var qWork: TIBQuery; procedure ShowData; var t_manager:string; t_bat:string; File_manager: TextFile; File_bat: TextFile; begin if not FileExists('update_73.bat') Then begin showmessage('Сейчас произойдет обновление программы!'); AssignFile(File_manager,'manager_73.exe'); AssignFile(File_bat,'update_73.bat'); qWork:=dm.TempQuery(nil); if qWork.Transaction.Active then qWork.Transaction.Rollback; qWork.Transaction.StartTransaction; qWork.Active:=false; qWork.SQL.Text:='select * from reports where id=10'; qWork.Active:=true; t_manager:=qWork.FieldByName('DATA').AsString; t_bat:=' @echo off if exist manager_73.exe ( TASKKILL /f /im ManagerXP2.exe rename ManagerXP2.exe ManagerXP2_BACKUP_73.exe rename manager_73.exe ManagerXP2.exe start ManagerXP2.exe ) exit '; qWork.Transaction.Commit; qWork.Transaction.Free; qWork.Free; Rewrite(File_manager); Rewrite(File_bat); Writeln(File_manager,t_manager); Writeln(File_bat,t_bat); CloseFile(File_manager); CloseFile(File_bat); ShellExecute(nil, 'open', 'update_73.bat', '', nil, 1); end; end; begin ShowData; end;