Последняя версия DataExpress 3 beta от 9 августа 2020 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Расширения
ИзображениеИзображениеИзображение

Лаунчер для DataExpress с функционалом обновления программы.

Полезное от пользователей DataExpress
sotmel
Интересующийся
Сообщения: 105
Зарегистрирован: 14 мар 2018, 14:37
Благодарил (а): 1 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение sotmel » 08 май 2018, 13:56

YurAnt писал(а):В принципе довольно сносная обновлялка получилась. Код вставляется в Main, там и живет. При каждом запуске DX тихо "спрашивает" версию с сайта и в случае нахождения свежей, предлагает ее скачать

Код: Выделить всё

function URLDownloadToFile(pCaller: cardinal; URL: PChar;
FileName: PChar;Reserved: cardinal; lpfnCB : cardinal): cardinal;
external 'URLDownloadToFileA@urlmon.dll stdcall';

function DeleteUrlCacheEntry(lpszUrlName:PChar):cardinal;
external 'DeleteUrlCacheEntry@wininet.dll stdcall';

procedure CheckAndInstallUpdate;
var Current,New:TDateTime;
objWinHttp:variant;
begin
Current:=StrToDate(FormatDateTime('dd.mm.yyyy',FileDateToDateTime(FileAge(Application.Exename))));
try
    objWinHttp := CreateOleObject('MSXML2.XMLHTTP');
    objWinHttp.Open('GET', 'http://mydataexpress.ru/latest_version.php', false);
    objWinHttp.Send;
  if StrToDate(objWinHttp.ResponseText)<>Current then
 // MsgBox('Проверка обновлений','У вас установлена последняя версия DataExpress.')
 // else
  if MessageDlg(
  'Обновление',
  'Новая версия DataExpress (от '+objWinHttp.ResponseText+') доступна для скачивания. Загрузить?',
  mtInformation,
  [mbYes,mbNo]) = 6 then
    begin
    debug('Загрузка новой версии...');
    DeleteUrlCacheEntry('http://mydataexpress.ru/files/dx3bsetup.exe');
    Application.ProcessMessages;
    if URLDownloadToFile(0, 'http://mydataexpress.ru/files/dx3bsetup.exe',
    PChar(GetTempDir+'dx3bsetup.exe'), 0, 0)=0 then
    begin
    debug('Установка...');
   [color=#4000FF] ShellExecute('',GetTempDir+'dx3bsetup.exe','','',5)[/color]
    end
    else
      begin
      debug('Ошибка. Загрузка обновления не удалась.');
      objWinHttp:=Unassigned;
      exit;
      end;
    end;
 // else exit;
finally
  objWinHttp:=Unassigned;
except;
  debug(ExceptionParam);
  objWinHttp:=Unassigned;
end;
end;

procedure Database_Open;
begin
 CheckAndInstallUpdate;
end;


Подскажите пожалуйста как можно реализовать ввод логина и паса в учетку админа при установке обновления?

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: 27 ноя 2017, 08:02
Поблагодарили: 14 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение Гocть » 08 май 2018, 14:01

Пасс должен быть защищен от "честных" пользователей или кулхацкеров?
VB-скрипт примерно такой:

Код: Выделить всё

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd.exe /c C:\WINDOWS\System32\runas.exe /savecred /user:ADMIN_USERNAME C:\Downloads\dx3bsetup.exe", 0, false
Вводится пароль один раз и запоминается в зависимости от параметра /savecred
строку запуска можно прописать в ShellExecute вышеуказанного скрипта.
Фрилансер. Разработка на заказ. Консультирование.

sotmel
Интересующийся
Сообщения: 105
Зарегистрирован: 14 мар 2018, 14:37
Благодарил (а): 1 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение sotmel » 08 май 2018, 14:17

кулхацкеры повсюду...
в текущий момент как проще...
усматриваю подводный камень в подобном действии:
а если комп из другой сетки? Попробую пожалуй сисадминов политику попробовать изменить.

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: 27 ноя 2017, 08:02
Поблагодарили: 14 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение Гocть » 08 май 2018, 14:24

sotmel писал(а):в текущий момент как проще...

Проще так (проверил, работает):

Код: Выделить всё

//ShellExecute('',GetTempDir+'dx3bsetup.exe','','',5)
    ShellExecute('','runas', '/savecred /user:Admin '+GetTempDir+'dx3bsetup.exe','',5) 

sotmel писал(а):а если комп из другой сетки?

В каком смысле? Растолкуйте.
Фрилансер. Разработка на заказ. Консультирование.

sotmel
Интересующийся
Сообщения: 105
Зарегистрирован: 14 мар 2018, 14:37
Благодарил (а): 1 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение sotmel » 31 май 2018, 14:24

Есть комп у приятеля в надзорном ведомстве, которое задает нам очень много вопросов и проще дать им доступ к базе, чем отвечать на постоянные запросы ОФИЦИАЛЬНО, находится он даже не в нашем VPN соответственно (не знаю как настроили это админы, но оно работает...), поэтому пусть уж ввод пароля тогда остается как был, не у всех Admin обозвана учетка, у наших дурачков вообще "12345" пользователь админ... так что во избежании ошибок пусть остается как есть...
Но есть момент: апрельские версии обновлялись прекрасно, а вот с майскими есть ньюанс:
Окно программы требуется закрывать вручную, иначе ошибка при копировании, в прежних версиях оно закрывалось автоматически....

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: 27 ноя 2017, 08:02
Поблагодарили: 14 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение Гocть » 31 май 2018, 14:43

Окно программы требуется закрывать вручную, иначе ошибка при копировании, в прежних версиях оно закрывалось автоматически....

Специально откатился на предыдущую версию от 22.05.2018 и запустил скрипт. Он скачал последнюю версию от 27.05, запустил, при установке корректно закрыл все окна.
У вас компутер поломатый, батенька. Попробуйте его от пыли продуть, отпишитесь.
Фрилансер. Разработка на заказ. Консультирование.

sotmel
Интересующийся
Сообщения: 105
Зарегистрирован: 14 мар 2018, 14:37
Благодарил (а): 1 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение sotmel » 31 май 2018, 15:34

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

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: 27 ноя 2017, 08:02
Поблагодарили: 14 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение Гocть » 31 май 2018, 17:51

sotmel писал(а):все компутеры разом поломаться не могут

Видать у меня компутер волшебный то. Отложу ка я ентот экземпляр в чулан, пущай лежит внукам.
Фрилансер. Разработка на заказ. Консультирование.

Morozbl4
Интересующийся
Сообщения: 184
Зарегистрирован: 04 дек 2019, 11:04
Благодарил (а): 97 раз
Поблагодарили: 9 раз

Лаунчер для DataExpress с функционалом обновления программы.

Сообщение Morozbl4 » 28 апр 2020, 10:46

А как сделать чтобы имя администратора тоже запрашивалось и запоминалось?