Рестарт программы и авторизация

Готовые скрипты, модули расширений, динамические библиотеки и вспомогательные утилиты.
Аватара пользователя
Владимир
Администратор
Сообщения: 614
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Рестарт программы и авторизация

Сообщение Владимир » 05 мар 2018, 17:29

Действие перезапускает приложение (запускает новый экземпляр при закрытии). Может использоваться как средство быстрой смены пользователей текущей БД.
Варианты настройки:
- автоматическая авторизация и вход в программу после перезапуска (в настройках указать логин и пароль пользователя)
- только логин (для автоматического выбора логина в с списке пользователей. Поле пароля в настройках действия оставляем пустым)
- без логина и пароля (перезапуск с последующим требованием ввести логин и пароль (оставляем пустыми поля в настройках действия)).

Совет: 2 последних настройки можно использовать для тактики программы: "Выход из системы", "Временная блокировка".
Код расширенияПоказать

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

{@action
ID=FFA3B9F2-C221-40BC-A95B-AB2A4D768A36
OrigName=DX_RESTART
Name=Перезапуск программы
Group=Сервис
UI=<ui>
<list name="cm" caption="Тип подключения:" items="Локальная БД;Сетевая БД" required="1">
<text name="un" caption="Имя пользователя:">
<text name="pw" caption="Пароль:">
</ui>
Description=<b>Действие перезапускает приложение</b> <i>(запускает новый
экземпляр при закрытии)</i>.
<br>Может использоваться как средство быстрой смены пользователей.<p><p>
<b>Параметры:</b><p>
<b>1. Тип подключения</b> <i>(обязательный параметр)</i> - Выберите "Локальная БД", если
работаете в файловом (однопользовательском режиме), и "Сетевая БД" -
в случае поключения к базе данных через локальную сеть или интернет
<i>(через сервер БД FireBird)</i>.
<b>2. Логин</b> <i>(необязательный параметр)</i> - укажите логин, под которым необходимо войти
после перезапуска DataExpress. Если оставить поле пустым - программа потребует
выбор/ввод логина после перезапуска.<br>
<b>Примечание: оставляя пустым поле логина следует также очистить поле пароля. </b>
<br>
<b>3. Пароль</b> <i>(необязательный параметр)</i> - укажите пароль пользователя
для автоматического входа указанного пользователя в программу после перезапуска.
<p>
<i>(Примечание: корректно работать будет только в кнопке. <b>
<font color="#FF0000">Недопустимо прописывать в
действии формы, так как это может вызвать цикличный перезапуск</font>)</i></b><p>
@}
var ConnectMode,UserName,Password:string;

procedure SendMessage(hWnd:THandle;Msg,wParam,lParam:longint);
external 'SendMessageA@User32.dll stdcall';

procedure MWOC(Sender: TObject; var Action: TCloseAction);
var IsNet,Quotes:string;
begin
if UserName<>'' then UserName:=' u:'+UserName;
if Password<>'' then Password:=' p:'+Password;
if ConnectMode='Сетевая БД' then
  begin
    IsNet:=' r';
    Quotes:='"';
  end
else
  begin
    IsNet:='';
    Quotes:='"';
  end;
  debug(' '+Quotes+GetCurrentDatabase+Quotes+IsNet+UserName+Password)
  ShellExecute('',Application.ExeName,
  ' '+Quotes+GetCurrentDatabase+Quotes+IsNet+UserName+Password,'',5);
end;

procedure DX_RESTART(ConnMode,Name,Pass:variant);
begin
  ConnectMode:=VarToStr(ConnMode);
  UserName:=VarToStr(Name);
  Password:=VarToStr(Pass);
  MainWindow.OnClose:=@MWOC;
  SendMessage(MainWindow.Handle,16,0,0);
end;

Расширение:
Рестарт DX.epas
(3.13 КБ) 446 скачиваний

Поддержка проекта

Теги:

Аватара пользователя
Macheti
Сообщения: 1
Зарегистрирован: 16 июл 2019, 10:51

Рестарт программы и авторизация

Сообщение Macheti » 16 июл 2019, 19:54

Владимир, доброго времени суток. Я не программист и не разработчик к моему сожалению, поэтому прошу понять и помочь насколько это возможно. Сейчас разрабатываю БД на DataExpress и очень понравился настройка (скрипт) в виде значка с пользователями. Но в моем случае, не очень удобно, что в раскрывающемся списке показывает все учетные записи, так как у меня их будет порядка 200 и у каждого свои права. Хотел попросить помощи, как можно оставить только значок, без списка. Чтобы пользователь нажимал на него и потом "ручками" вводил логин и пароль. А если при этом у администратора останется раскрывающийся список, будет шикарно.

Прошу сильно не "пинать"

П.с. Хотел бы с Вами поговорить еще по одному предложению в личных сообщениях.

Аватара пользователя
Владимир
Администратор
Сообщения: 614
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Рестарт программы и авторизация

Сообщение Владимир » 16 июл 2019, 21:59

По скрипту посмотрю что можно сделать. Если есть какие-то вопросы личного характера - пишите.

Ответить